What “Linux” are you using? Especially, are you using a 32bit or 64bit Linux OS? If you are using a 64bit OS, is Tomcat 6 also a 64 bit application?
I am asking this, as the JVM 32bit maximum heap size could be in theory 4GB (2^32). Now, the 32bit OS has some built in limits per process, which is around 3GB. And again, the JVM requires some additional memory for its management.
So, 2GB is realistic for a 32 bit environment.