Оптимизация ресурсов для сервера LAMP с малым объемом оперативной памяти под управлением WordPress?
Как минимизировать использование памяти на LAMP? Виртуальный выделенный сервер, до 512 ОЗУ, 20 ГБ дискового пространства, на нем должен быть запущен блог Wordpress. Не уверен для загрузки, но скажем, 2-5 тысяч посетителей в день.
5 ответов
Максимум 5 тыс. Обращений в день, то есть один запрос каждые 10 секунд. Не огромная нагрузка. Хотя ОЗУ является сдерживающим фактором, вы, вероятно, можете обойтись без увеличения объема подкачки, учитывая очень низкий объем трафика, который вы ожидаете.
Тем не менее, удаление жира будет иметь большое значение для достижения ваших целей. Я проделал некоторую работу с серверами с низким объемом памяти, но это было давно. Я постараюсь вспомнить. Здесь это идет:
Хитрость в том, чтобы минимизировать количество резидентных программ. Каждая программа не только занимает оперативную память для хранения кода, но и потребляет другие ресурсы.
Сначала я посмотрю на удаление любых ненужных ttys из /etc/inittab, отметив их хешем (
#
). Это освобождает пол-мег или около того. Двух консолей должно быть достаточно (запасная есть в том случае, если ваша оболочка перестает отвечать на запросы другой - обязательно выполняйте вход в обе системы при выполнении работы, чтобы не отвечающая система не блокировала вас во время интенсивной замены / загрузки и т. Д.)Найдите все службы, которые вы не будете использовать, и настройте их так, чтобы они не запускались при перезагрузке (если это не требуется чем-то другим). В любом случае это было бы хорошей практикой для общедоступного сервера, поскольку это также уменьшает вашу поверхность атаки.
Если возможно, попробуйте перенести службы в inetd/xinetd или какой-либо другой суперсервер, который, в свою очередь, освободит память от использования моделью "резидент в памяти", упомянутой выше.
При использовании 20-гигабайтного диска маловероятно, что у вас будут обширные наборы данных для публикации через серверную часть вашей базы данных. Посмотрите на предоставление вашей базе данных достаточно оперативной памяти, чтобы ответить на 2 одновременных запроса, одновременно обрабатывая 3 одновременных соединения.
Если у вас есть GDM/KDM/XDM/ любой другой менеджер входа, запускающийся при запуске, отключите его! Вторичные ресурсы, которые ему требуются, просто забьют ваш файл подкачки и потребляют драгоценную оперативную память. Выполняйте всю свою работу через SSH или через любые административные веб-страницы, на которые вы можете попасть с помощью браузера.
Если вам просто нужен графический сеанс, посмотрите, как настроить VNC как службу удаленного рабочего стола. Он будет выделять память только при активном сеансе. Не подвергайте службу VNC извне, вы будете просить неприятностей.
Эта ссылка содержит больше информации, чем все полученные ответы вместе:)
http://wiki.vpslink.com/Low_memory_MySQL_/_Apache_configurations
Для обрезки самого Apache посмотрите на загружаемые модули. Здесь есть и другие хорошие ответы для общего объема памяти и уменьшения нагрузки, так что примите их во внимание. Трудно точно знать, что было бы хорошо отключить, но я бы сделал несколько рекомендаций:
auth_digest_module - большинство браузеров не поддерживают эту форму аутентификации, поэтому маловероятно, что вы будете ее использовать.
ldap_module, authnz_ldap_module - если вы не проходите аутентификацию с использованием ldap или чего-либо, основанного на ldap, это не нужно. Примечание: PHP может зависеть от этого, если вы используете его функции ldap. Я никогда не пытался отключить их, когда я использовал эти функции.
userdir_module - это может быть уже отключено и должно быть на любом рабочем сайте в любом случае
speling_module - этот хитрый. Если вы отключите это, ваши URL чувствительны к регистру. Возможно, это также "исправляет неправильно написанные URL-адреса", хотя я еще не видел, чтобы это на самом деле произошло. Если ваша клиентская база набирает в URL, я бы оставил это включенным, иначе, вероятно, безопасно отключить.
Apache имеет много документации по своим модулям. Я бы рекомендовал пройтись по нему и после прочтения документации по модулю решить, нужно ли вам это, но только если вы полностью понимаете модуль. Некоторые из них предоставляют очень важную базовую функциональность и могут сломать другие вещи, будучи недоступными.
Не запускайте X, закрывайте все ненужные сервисы и компилируйте Apache, MySQL и PHP только с необходимыми функциями.