Apache из памяти на

Мой опыт состоит в том, что ntop не масштабируется хорошо (это было несколько лет назад). Я теперь использую комбинацию fprobe и nfsen, чтобы сделать bandwith контроль использования. См. мои примечания здесь.

1
задан 10 March 2011 в 23:23
4 ответа

Оптимизация объема потребляемой памяти обычно делается путем сокращения (и ограничения) эти факторы:

  • количество одновременных процессов Apache (я рекомендовал бы переключиться для предварительного разветвления MPM, который является kindof, более управляемым в ограниченных памятью окрестностях),
  • переезжая от mod_php или php_cgi к fastcgi, mod_cfgid хорошо работает. Сокращение количества позволенных породили процессы php FcgidMaxProcesses и удаление долгих тайм-аутов (см. http://httpd.apache.org/mod_fcgid/mod/mod_fcgid.html),
  • сервер "нитевидность", особенно путем сокращения излишне долгих тайм-аутов ((скидка) тайм-ауты подключения, сообщения проверки активности...)

Если загрузка становится действительно тяжелой, необходимо также изучить скорость обработки запроса (более быстрая загрузка улучшают общее количество size*time памяти, необходимой для одного запроса),

  • оптимизация кода веб-сайта (улучшающий PHP кодируют, чтобы быть быстрее и/или больше эффективной памяти),
  • оптимизация выполнения PHP (xcache может несколько раз ускорять материал),
  • кэширование целых запросов также делает чудеса, видит mod_cache

Возможно, если Ваша сеть не никто интенсивный ЦП вообще, и Вы нуждаетесь в некотором экстремальном Req/S, пробуете некоторый другой веб-сервер (как nginx или lighttpd), которые ведут себя лучше в таких ситуациях.

2
ответ дан 3 December 2019 в 22:14

Обработка остроконечного трафика жестка. Альтернативы включают: более легкий вес сервер HTTP (lighttpd, nginx, и др.); больше физической RAM; подсистема балансировки нагрузки и дополнительные хосты, который обладает дополнительным преимуществом более высокой доступности; разгрузка Вашего кода приложения к системе отделяется от Вашего сервера HTTP, обычно посредством FastCGI; динамично настройка вычисляет ресурсы для встречи загрузки через облачный сервис как EC2; или тонны других идей я забыл или не думал. Существуют некоторые большие ресурсы на этом материале там; Высокий блог Масштабируемости, например, касается большого количества этой территории.Надеюсь, это поможет!

0
ответ дан 3 December 2019 в 22:14

Требование к памяти на экземпляр для Apache составляет приблизительно 10 МБ, хотя точная сумма варьируется в зависимости от Вашей конфигурации. Таким образом, если бы Вы хотели служить 100 параллельным соединениям с Apache, то Вам был бы нужен по крайней мере 1 ГБ RAM плюс то, что необходимо системе, MySQL и чему-либо еще, что Вы выполняете.

Если Вы хотите остановиться "из ошибки", условия можно корректироваться MaxClients Параметр конфигурации Apache к соответствующему уровню. Для получения оценки памяти на экземпляр Apache смотрят на top вывод и вычитает столбцы RES и SHR всех команд httpd. Удостоверьтесь, что вычли безотносительно MySQL памяти и остальной части системных потребностей. Обратите внимание, что можно закончить с относительно небольшим числом для MaxClients на этой машине (30-50).

Другие ответы дали хорошую сводку того, что можно сделать для улучшения, сколько параллельных запросов можно обработать. Знайте, что в такой низкопроизводительной системе это может быть трудно, хотя не обязательно невозможный, для установки Apache/PHP/MySQL плюс lighttpd/nginx/memcached/caching. Как легкий или твердый будет зависеть от Вашего приложения и Вашей целевой производительности. Рассмотрите обновление до более крупного сервера... Вы найдете то, чтобы заставлять все соответствовать 2 ГБ или намного легче 4 ГБ.

0
ответ дан 3 December 2019 в 22:14

Первое, что нужно сделать состоит в том, чтобы убрать Вашу существующую систему. Из поля апач обычно настраивается с большим количеством расширений, в которых Вы, вероятно, не нуждаетесь (особенно автор и прокси, также если Вы используете SSL, но только редко, затем рассматриваете удаление mod_ssl и выполнение stunnel вместо этого). Действительно включите mod_deflate. Посмотрите на все другие материал, работающий на Вашей системе - завершение работы (и отключите), любые сервисы, в которых Вы не нуждаетесь.

Затем, выполнение suphp на выделенной машине через CGI обычно является очень немой идеей - используют mod_php или fastCGI.

Заставляя Вашу систему пойти быстрее, мало того, что Вы предоставляете лучшую услугу своим клиентам, но Вы уменьшите объем потребляемой памяти. Так....

Установите кэш кода операции PHP, если у Вас уже нет того.

Начните рыть в производительность Вашей системы - изменяют Вашу конфигурацию httpd, чтобы начать регистрировать %D и смотреть на продукт частоты URL и %D для идентификации, какие URL вызывают большинство проблем.

Понизьтесь порог на Вашем медленном запросе входят в систему, MySQL - использует этот синтаксический анализатор, или подобный для анализа данных (обратите внимание, что снова необходимо расположить по приоритетам на основе продукта частоты и время выполнения).

Добавьте автопредварительно ожидание для включения gz сжатия буфера вывода.

Начните записывать количество выполнения httpd процессы и сравните это с доступным, меньше кэша/буферов от 'свободного' - сопоставляет данные и изображает их в виде графика для разработки, сколько процессов httpd можно разумно работать - затем изменяют httpd.conf для осуществления этого предела. Обратите внимание, что диск, ввод-вывод является феноменально медленным - таким образом, Вам нужен здоровый объем памяти, доступный для кэширования.

Начните смотреть на то, предоставляет ли Ваш сервер хорошую информацию о кэшировании с содержанием - или если клиенты и прокси должны продолжать возвращаться для материала, который не изменился (mod_expires, mod_headers)

Но иногда Вам действительно просто нужно больше аппаратных средств. Я рекомендовал бы рассмотреть второй сервер вместо того, чтобы просто обновить тот, который Вы имеете - добавление, что циклический DNS тривиален - и Вы получаете добавленный beneift лучшей доступности (после того как Вы разработали, как обработать репликацию баз данных).

0
ответ дан 3 December 2019 в 22:14

Теги

Похожие вопросы