In addition to some of hte other coments mentioned about IO, this caught my eye...
: I'm using SOLR(1.4) to search among about 3,500,000 documents. After the : server kernel was updated to 64bit system has started to suffer. ...if the *only* thing that was upgraded was switching the kernel from 32bit to 64bit, then perhaps you are getting bit by java now using 64 bit pointers instead of 32 bit pointers, causing a lot more ram to be eaten up by the pointers? it's not soemthing i've done a lot of testing on, but i've heared other people claim that it can cause some serious problems if you don't actaully need 64bit pointers for accessing huge heaps. ...that said, you should really double check what exactly what changed when your server was upgraded ... perhaps the upgrad inlcuded a new filesystem type, or changes to RAID settings, or even hardware changes ... if your problems started when an upgrade took place, then looking into what exactly changed during hte upgrade should be your furst step. -Hoss