The optimum number of max-records should actually vary with the object depending on the length of each record in the output.
e.g. The length of single record in the output of volume-get-iter will be much larger than that of system-image-get-iter.
So, you can afford to pull more records of system-image-get-iter as compared to volume-get-iter in each iteration.
However, in absence of any definitive optimum max-records value, you can go with the default value of max-records which is defined in the API documentation.
In most cases, this value is defined as 20. And in most cases, the APIs have been tested with this default value. So, it would be safe to go with the default value.
Moreover, max-records is an optional parameter. So, you can just skip this parameter in order to invoke the API with the default value.