Мой опыт состоит в том, что ntop не масштабируется хорошо (это было несколько лет назад). Я теперь использую комбинацию fprobe и nfsen, чтобы сделать bandwith контроль использования. См. мои примечания здесь.
Оптимизация объема потребляемой памяти обычно делается путем сокращения (и ограничения) эти факторы:
Если загрузка становится действительно тяжелой, необходимо также изучить скорость обработки запроса (более быстрая загрузка улучшают общее количество size*time памяти, необходимой для одного запроса),
Возможно, если Ваша сеть не никто интенсивный ЦП вообще, и Вы нуждаетесь в некотором экстремальном Req/S, пробуете некоторый другой веб-сервер (как nginx или lighttpd), которые ведут себя лучше в таких ситуациях.
Обработка остроконечного трафика жестка. Альтернативы включают: более легкий вес сервер HTTP (lighttpd, nginx, и др.); больше физической RAM; подсистема балансировки нагрузки и дополнительные хосты, который обладает дополнительным преимуществом более высокой доступности; разгрузка Вашего кода приложения к системе отделяется от Вашего сервера HTTP, обычно посредством FastCGI; динамично настройка вычисляет ресурсы для встречи загрузки через облачный сервис как EC2; или тонны других идей я забыл или не думал. Существуют некоторые большие ресурсы на этом материале там; Высокий блог Масштабируемости, например, касается большого количества этой территории.Надеюсь, это поможет!
Требование к памяти на экземпляр для 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 ГБ.
Первое, что нужно сделать состоит в том, чтобы убрать Вашу существующую систему. Из поля апач обычно настраивается с большим количеством расширений, в которых Вы, вероятно, не нуждаетесь (особенно автор и прокси, также если Вы используете 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 лучшей доступности (после того как Вы разработали, как обработать репликацию баз данных).