Clean CentOS 4.3, Zimbra OS

top shows the following memory parameters:
Mem: 1034712k total, 402588k used, 632124k free, 672k buffers
Swap: 2096376k total, 587468k used, 1508908k free, 35856k cached

Looks like file cache is not used or used poorly for zimbra operations? Is this something specific to java?
Can someone look at their values?

This server (P4 processor) looks to be using HDD pretty much, at least HDD lamp blinks a lot during email operations while we have only 20 users running.

I thought linux would like to use as much memory for cache as it can, but it just leaves 632124 free and cache stays at this value all the time. Is this normal operation?