Назад | Перейти на главную страницу

Как настроить веб-сервер для работы с небольшим объемом памяти?

У меня установлен сервер (P4, 512 МБ DDR2 RAM) и LAMP (Debian Lenny). Свободная память уменьшается очень быстро, и мне нужно перезапустить apache и mysql, чтобы это исправить. Вверху я вижу множество процессов IDLE apache, которые съедают много памяти. Как я могу настроить сервер, чтобы это исправить? (уже добавлен скрипт перезапуска в cron, но это не решение, я думаю) Спасибо, извините за мой плохой английский.

Выход free:

ax-host:~# free 
     total  used   free  shared buffers cached
Mem: 516048 115356 400692 0     20732   54752 
-/+ buffers/cache: 39872 476176 
Swap: 1515512 17568 1497944

Я предполагаю, что большая часть вашей памяти используется для дискового кеша - это хорошо, и не о чем вам нужно беспокоиться, так как ядро ​​выделяет эту оперативную память приложениям, которые в ней нуждаются, сразу же по запросу. Видеть Вот для получения дополнительных объяснений по этому поводу. Разместите вывод free чтобы узнать, что использует ваша память, если хотите.

Либо удалите все ненужные модули apache, либо рассмотрите возможность использования httpd меньшего размера, например nginx или lighttpd. Для MySQL проверьте свой my.cnf, чтобы узнать, какие буферы / кеши вы можете уменьшить.

то, что вы ищете, - это некоторая конфигурация настройки, вот несколько советов:

Советы по настройке Apache:

  1. Обновите Apache! Новейшая версия содержит несколько улучшений производительности.

  2. В httpd.conf отключите HostNameLookups, чтобы избежать обратного поиска DNS для каждого посетителя, попадающего на ваш веб-сайт.

  3. В httpd.conf установите «MaxClients 230 ″ или выше для более загруженных веб-сайтов. Это позволяет большему количеству демонов httpd работать одновременно и избегает засорения очереди процессов.
  4. Подавать веб-графику (например, файлы GIF) с другого компьютера.

  5. Убедитесь, что ваши веб-страницы и CGI-страницы совместимы с кешем браузера. См. «Учебное пособие по кэшированию для авторов и веб-мастеров» по ​​адресу http: // mnot.cbd.net.au/cache_docs/

  6. Держите свой Apache стройным и подлым. Скомпилируйте Apache, используя необходимое количество модулей. Перед компиляцией (перед запуском make) отредактируйте файл /apache_1.x.x/src/Configuration, поставив # перед любыми строками AddModule, которые вам не нужны.
  7. Если вам не нужны журналы трафика (например, сайт, который обслуживает только графику), используйте директиву TransferLog в httpd.conf для перенаправления записей журнала в / dev / null /
  8. Если вы не настаиваете на использовании файлов .htaccess для управления доступом к определенным каталогам (есть другие способы сделать это), в разделе access.conf (или httpd.conf в новых версиях Apache) установите «AllowOverride None», чтобы Apache не будет утруждать себя поиском файла .htaccess в каждом каталоге при каждом запросе.
  9. НЕ оставляйте запущенными ненужные фоновые процессы. Удаление посторонних фоновых задач не только повышает производительность, но и повышает безопасность. В каталоге /etc/rc.d/rc3.d/ [в других системах он может быть другим, например, в Debian это /etc/rc2.d/. -D.], Удалите символические ссылки на процессы, которые вам не нужно запускать. Для обычного веб-сервера на локальном диске в Linux вам потребуются только маршрутизированные, сетевые, inet, httpd и локальные символические ссылки в каталоге /etc/rc.d/rc3.d/. Перезагрузите машину, если вы изменили содержимое этого каталога.
  10. НЕ обслуживайте веб-страницы и не записывайте журналы веб-трафика на сетевой диск (например, сетевые диски NFS) - чтение и запись только на локальные диски. Операции ввода-вывода NFS связаны с огромными накладными расходами.
  11. НЕ запускайте Apache (httpd) через оболочку tcpd в /etc/inetd.conf. Apache можно запустить при загрузке машины, добавив команду запуска в файл rc.local или поместив сценарий запуска httpd в каталог /etc/rc.d/rc3.d/. Если вы хотите, чтобы какой-то механизм блокировал запросы по IP-адресу, используйте директиву deny from в файлах конфигурации Apache или в файле .htacess.
  12. НЕ оставляйте X Windows работающим на вашем веб-сервере, если вы его не используете - просто не забудьте нажать Ctrl-Alt-Backspace, чтобы закрыть сеанс X, когда вы закончите его использовать.
  13. Избегайте использования тегов SSI.
  14. В сценариях CGI:
    • Файловый ввод-вывод: открывайте как можно меньше файлов. Обязательно закрывайте каждый открытый файл. Прекратите читать файл, как только найдете нужные данные. Рассмотрите возможность структурирования файлов данных в поля фиксированной длины и использования функции read (), чтобы перейти к той части файла, которую вам нужно прочитать.
    • Команды оболочки: вызов команд оболочки по их полному пути: например. используйте «/ bin / date» вместо просто date в скрипте Perl.
    • Если ваш сайт в основном основан на CGI, непременно используйте mod_perl. См. Http: // perl.apache.org/
    • Программисты Perl должны изучить «Эффективное программирование на Perl» Джозефа Н. Холла (книга Эддисона Уэсли) и «Поваренная книга Perl» Тома Кристиансена (книга О'Рейли) - два хороших текста по оптимизации кода Perl. Например, вы можете предварительно выделить память для хэша, который будет содержать 256 элементов, например: keys (% names) = 256;
    • Избегайте наличия более 1000 файлов в каталоге вашей веб-страницы. Организуйте файлы своих веб-страниц в подкаталоги. Чем больше файлов находится в каталоге, тем больше времени требуется, чтобы найти этот файл во время запроса.
  15. Поместите как можно меньше графики на свои веб-страницы. Убедитесь, что каждое изображение проходит через компрессор изображений.
  16. Стресс-тест вашего веб-сайта. Запустите программу Apache Benchmark (называемую «ab») в каталоге Apache / bin или / sbin. Программа ab будет имитировать интенсивный трафик, выполняя несколько одновременных запросов на любой веб-странице, сколько хотите, а затем измеряет время загрузки и отклика. Очень полезно для измерения эффекта от ваших усилий по настройке.
  17. Для лучшей производительности отключите сетевой кабель от веб-сервера - нагрузка упадет до нуля почти мгновенно!
http://alicayli.ksu.edu.tr/?p=74