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