Пишу про заинтересовавшие сервисы, блоги, твиттеры, а также собственные идеи и задумки.

Оптимизируем сервак. Часть 1.

24 февраля 2011, 1:34

Ну, как и обещал, несколько коротких статей с советами о том, что может помочь ускорить ваш VPS.

Имеется достаточно немаленький по объёму сайт, состоящий из MediaWiki и форума. Поскольку со временем он разросся (хоть и не до таких впечатляющих масштабов, как хотелось бы, но хостеров неприятно впечатлил всё же), пришлось искать новый хостинг. Нашли устраивающий и по цене, и по качеству (о нём я уже писал, оперативный саппорт по-прежнему на высоте).

Но вот незадача: вроде бы купленный VPS и работает, но единственный размещённый сайтец немного тормозит (а MediaWiki — много, время генерации главной страницы было порядка 4-6 секунд).

В один прекрасный момент решил всё-таки получше поштудировать интернетную литературу по данному вопросу. Статей написано немало, потому здесь лишь буду пересказывать их содержимое.

Во-первых, достаточно удобно будет обзавестись FTP-аккаунтом от корня сервера, чтобы проводить манипуляции в нём. В шелле хоть и можно производить действия, но гораздо медленнее. Если есть SSH, то можно попробовать установить и соединение по sFTP с логином и паролем администратора. Например, SmartFTP такое позволяет.

Совет 1

Первым делом, если у вас на серве стоит OpenVZ, то маленькая хитрость существенно увеличит объём свободной оперативки, которая нам частично ещё пригодится.

Найдите файл rc (в моём случае он располагается в /etc/rc.d/) и добавьте где-нибудь вверху строчку:

ulimit -s 1024

Это ограничит потребление ресурсов, которое несколько раздута из-за особенностей OpenVZ. Чем меньше значение (в Кбайтах), тем больше должно освободиться памяти, но всё-таки не стоит с этим перебарщивать. После изменения перезагрузите сервер (командой reboot в шелле, например). Одна строчка освободила порядка 100 Мб оперативки, ну и общая загрузка несколько снизилась.

Совет 2

Если не используете в MySQL базы InnoDB, их можно отключить. Найдите файл my.cnf (у меня он лежит в /etc/) и добавьте в секцию [Mysqld] строчку:

skip-innodb

После сохранения перезагрузите сервер БД из шелла, набрав:

service restart mysqld

или

/etc/init.d/mysqld restart

Отключение этой штуки мне дало около 50-80 Мб освободившейся оперативки.

Часть вторая: Оптимизируем сервак. Memcache
Часть третья: Оптимизируем сервак. eAccelerator

12 комментариев
Cd-58

Хоть я и ничего не понял, но видимо это очень интересно и полезно™.

StereoMaster

И вам ещё нужен питання на мильон?

cyber

не, слишком сложная статья, до половины тока дочитал

StereoMaster

Там всего речь о двух строчках, которые надо добавить в указанные папки, если у тебя сервак с OpenVZ. Сложности чуть позже будут.

zlo

Нашел статью через яндех... не увидел ссылки на 2-ю часть... ушел.. искать дальше..

VikaBraun

Прописала ulimit -s 1024, но при запросе через ssh, ulimit выводит unlimited. Что это значит ? Я не туда прописала ?

StereoMaster

При каком запросе через SSH? Это надо в файл пихать, после первой строки, ну и перезапустить апач.

VikaBraun

Запихала в фаил, перезапустила. Команда ulimit в консоли выводит unlimited.

mult

а еще, вариант, не использовать виртуалки на OpenVZ и ообратить свой взгляд на Xen — распределение ресурсов там честнее. Свой дисковый кэш, своя гарантированная память.
Не использовать Apache в качестве веб-сервера, в угоду более шустрых и менее прожорливых lighttpd или nGinx.
Использовать php5-fpm, если используете php скрипты.

StereoMaster

Возможности у всех разные и xen несколько дороже выходит. Замена апача тоже не безболезненна — .htaccess адаптировать под nginx та ещё головная боль.

StereoMaster

Ну по идее дело должно быть сделано, если нагрузка стала ниже.

mult

согласен про xen. а насчет .htaccess — не такие уж они и сложные правила реврайта что у nginx, что у lighttpd :) просто надо разобраться.

Ваш комментарий
адрес не будет опубликован

ХТМЛ не работает

Ctrl + Enter
Популярное