Какви са останалите параметри на машината? Засега видяхме само количеството на RAM паметта. А каква част от тази памет се използва реално (команда 'free -m' и гледане на buffers отделно в натоварени и ненатоварени моменти)? Питам, защото предполагам, че тези 2ГБ са ти достатъчни и можеш да изключиш swap-а напълно. Забелязал съм малко подобрение в работата на системата, когато към нея няма закачен swap, стига наличната памет да е достатъчна. И това не е случайно - дори и при зададен swappiness 1 и реално не записване нищо в swap-a, винаги остава поне някаква проверка на swap-а, която се бърка из процесите. А задаване на swappiness 1 на практика е излишно, стойността му винаги е по-голяма, вероятността за попадане дори на най-малка информация в swap-a се увеличава, а всяко попадане е свързано с I/O от хард диска, който е много по-бавен от RAM паметта. Аз не използвам swap на машините си - купуването на още една плочка RAM ми коства много по-малко нерви и пари от управлението на swap-a. И все пак говорим за постоянно наблюдавани машини (независимо дали ръчно или чрез набор от скриптове), каквато предполагам е и твоята.
Друго, което използвам, е настройване на MySQL да използва /dev/shm (tmpfs дяла) като временна папка - също се забелязва малко подобрение. Можеш да добавиш следния параметър към изпълнението на mysqld_safe:
--tmpdir=/dev/shm
Ако имаш скрипт в /etc/init.d, който използваш за пускане на MySQL, добави параметъра там към изпълнението на mysqld_safe в start().
Наблюдавай mtop по-дълго, и в момент, в който имаш повече едновременни потребители - ако го гледаш в момент, в който нямаш много потребители, и тези потребители изпълняват заявки, които се изпълняват по-бързо от 1 секунда (каквото е минималното време за обновяване екрана на mtop), много е вероятно да не видиш нищо. Целта ти с mtop е да засечеш тежки заявки, или затлачващи се леки и тежки заявки в натоварен момент, за да видиш можеш ли да оптимизираш някоя (в твоя случай с платения готов CMS най-вероятно няма да се наложи оптимизация на заявките), и по-важно, да разбереш имаш ли нужда от наместване параметрите на MySQL (описаните в my.cnf), за да разпределиш ресурсите на машината за твоите нужди.
Покажи съдържанието на конфигурационните файлове на MySQL и Apache - добрият подбор на параметри там води до драстични разлики в натовареността. Можеш да се зачетеш в документацията на MySQL за тези параметри, както и за допълнителни параметри, които текущо нямаш описани в my.cnf, но може да има нужда да добавиш, за да разбереш как действат и с какви стойности биха отговаряли на твоите нужди. В момента ще спомена само key_buffer - задавай го около половината от RAM паметта си (в твоя случай например 1024М).