The Operating System is in charge of optimizing the use of the available memory. It is (should be) designed to do a good job of that under "normal" conditions. The designers of the operating system will usually take under consideration that an optimal system makes use of all the available memory whenever possible. Memory that's not used for anything is wasted, and the system will perform best when all memory is used for active programs, file caches, I/O buffers, and so on, except for a small "free" pool set aside for quickly responding to allocation requests.
Therefore, it is usually better to let the OS decide how much memory to use for file caching. If the user has very specific insight into a given application environment, then some further optimization could be applied. From an elevated command prompt, run:
fsutil behavior set memoryusage 2
This tells the operating system to devote more memory to file caching than it otherwise would.
Configures the internal cache levels of NTFS paged-pool memory and NTFS nonpaged-pool memory. Set to 1 or 2. When set to 1 (the default), NTFS uses the default amount of paged-pool memory. When set to 2, NTFS increases the size of its lookaside lists and memory thresholds. (A lookaside list is a pool of fixed-size memory buffers that the kernel and device drivers create as private memory caches for file system operations, such as reading a file.)
You must reboot your computer for this parameter to take effect.
A Note on memory utilization
The pool of "unused" memory is not actually idle; the system will use it for transparent caching of file data. Memory used for file cache doesn't show up as "used" because the OS will discard the cached data if an application needs that memory, so it's technically available. You can see this in Task Manager under Cached item in the Physical Memory section of the performance tab, and you can see more detail by adding the Cache Bytes and Standby Cache ... items in Performance Monitor.