ТС, оптимизируйте сами скрипты и запросы в бд. Проставьте индексы, включите лог медленных запросов и лог запросов не использующих индексы и смотрите что и где не так. Плюс разумеется оптимизация сервера и установка кешера.
Не имеет значения, ставьте SJ Object Cache он совместно работает с ними и снизит нагрузку на мускль.
Установите SJ Object Cache плагин (с использованием XCache), а для оптимальных настроек MySQL используйте mysqltuner. У Nginx сделайте принудительное кеширование статических данных
А кеш то nginx где хранит? Верно на HDD.
А что просил ТС? Верно, снизить кол-во операций чтения/записи с HDD
Для маломальски нормального тюнинга мускл у него не хватит оперативки,
всё что надо, это "закрыть" его в памяти запретив использовать файл подкачки,
а также увеличить размер временных таблиц, дабы они не создавались на диске.
У nginx поставить принудительное кеширование для браузеров на статические
данные(картинки, стили и др). Отключить ведение логов, где возможно.
в главном конфиге nginx прописать access_log off;
логи у мускл если таковые включены, а также не забыть про остальное ПО.
А вообще, ТС, нарастите нормально ресурсов и наймите хорошего администратора, а то сейчас понакрутите у себя там...
Т.е по-вашему обращение к оперативной памяти вместо жестого диска не поможет снизить кол-во операций на него? Очень интересно...
Тс, также увеличьте размер временных таблиц, дабы они создавались в оперативной памяти, а не на HDD.
Установите nginx для отдачи статики + настройте в нём принудительное кеширование на картинки, стили и прочее...
MySQL запретите использовать файл подкачки разрешив ему использовать озу (параметр memlock).
Также необходимо его корректно настроить, различные буфера, размер временных таблиц и др.
Поотключайте access_log и прочие не нужные логи, которые мусорят вам систему.
Но боюсь, маловато у вас RAM, много вы туда не перегоните, а значит сильно нагрузку на HDD не понизите,
советую нарастить RAM хотябы до 1-1,5 Гб, в любом случае при росте посещалки вам это понадобится.
Укажите мускулю не обращатся на файл подкачки, а использовать ОЗУ.
Для этого используйте memlock, разместить его следует в секции [mysqld]
[mysqld]## * Basic Settings#user = mysqlpid-file = /var/run/mysqld/mysqld.pidsocket = /var/run/mysqld/mysqld.sockport = 3306basedir = /usrdatadir = /var/lib/mysqltmpdir = /tmplanguage = /usr/share/mysql/englishskip-external-lockingskip-name-resolvelow-priority-updatesmemlockbind-address = 127.0.0.1
Макс. разгрузить не сможете, сами базы то физически хранятся на HDD, логи кстати пишутся туда-же.
Банальный mysqldump в опр. папочку по крону поможет вам справится с задачей.
Оптимизировать веб сервер, mysql, скрипты да и сам сервер в целом. Настроить Nginx таким образом дабы он отдавал статику желательно с кешированием, также включите gzip.
По возможности закешируйте даже динамический контент (можно тем же nginx'ом), избегайте тяжелых и громоздких запросов в бд, также сведите кол-во запросов к минимуму.
Если уж используете cgi, лучше перейдите на php в режиме fpm (это имеет и ряд минусов, но также и плюсов), а от apache стоит избавится вовсе ибо в конечном итоге он всёравно убьёт сервер.
Также можно установить всякие кешеры и ускорители для php (например apc, memcached или же eaccelerator).
P.S за этим всем обратитесь к знающему админу, ибо сами вы натворите много бед.
/etc/init.d/apache2 start через ssh выполните