Using ps, I can see the size, the vsize (same as top's VIRT?), and the rss (same as top's RES?). (One more I see in top is SHR.)
Could someone summarize for me what these different fields mean?
Note that RSS + SHR <= VIRT, always.
In Juliano answer:
This is just false. SHR contains all virtual memory that could be shared with other processes, and RSS contains all memory physically in RAM that is used by the process.
Thus all shared memory currently in RAM is counted both in SHR and in RSS, so SHR + RSS has no meaning since it can contain duplicates counts.
To construct a process with RSS + SHR > VIRT, just mmap a large file (1GB), then read it completely: the mmaped file will be loaded in RAM, and VIRT, SHR and RSS will each be slighly larger than 1GB, so SHR + RSS > VIRT.