The column with 3428k is RSS (ram used by process). 77M is total pages used by process so some might be swapped etc. Rss < sz always. 16944 16678 mitenmME TH1 16 NICE 77M 3428K cpu1 0:45 0.39% top 3962 13962 mitenm 1 15 0 4736K 1524K sleep 0:00 0.00% ksh 16678 16678 mitenm 1 15 0 4740K 1508K sleep 0:00 0.00% ksh 17242 17242 mitenm 1 15 0 4736K 1512K sleep 0:00 0.00% ksh java -Xnoclassgc -cp . -Xms256m -Xmx256m -Xss1m Hello This will cause rss to be bound to max of 256m. So if process request more than that (with some buffer of may be 100m) it will give out of memory error even if there is free memory (ram) in system. This is what process heap limit it set by java command line switch -Xmx. Also ss is requesting 1m as initial stack size. Stack usually is part of heap. Stack is allocated at one end of address space while heap at other and they move towards each other when there is allocation.