So I would provide at least 9 x 512 ( =4608 ) bytes as caching memory. Later on, have a try with less if you like.
Note that in most cases, the internal caches are by-passed: FF_Write() and FF_Read() are optimised so that user-buffers are passed directly to the drivers.
What is recommended size for cache memory size ?
9 x 512 bytes
What should be criteria to decide appropriate size ?
Look at how many files are open at the same time and how many tasks are accessing the same volumes (RAM-disk, SD-card). It should not get locked-up; task waiting for ither tasks.
There is a time-out when waiting for a free cache buffer: grep for FF_GETBUFFER_WAIT_TIME_MS, by default 20 seconds.