Производительность, настраивающая сервер Apache Высокой Загрузки

Почему не только осуществляют хорошие политики паролей. Что-то как по крайней мере 8 символов, смешанные случаи, по крайней мере 1 число, и 1 не буквенно-цифровой знак. Кроме этого существует много хороших словарей, с которыми можно сравнить пароли.

12
задан 4 February 2011 в 02:34
5 ответов

Я запущу путем признавания, что я не делаю многого о рабочем материале в облаках - но на основе моего опыта в другом месте, я сказал бы, что эта конфигурация веб-сервера отражает довольно низкий объем трафика. То, что runqueue является столь большим, предполагает, что просто нет достаточного количества ЦП, доступного для контакта с ним. Что еще находится в runqueue?

Мы можем позволять слишком много запросов KeepAlive

Нет - keeplive все еще улучшает производительность, современные браузеры очень умны о знании, когда конвейерно обработать и когда выполнить запросы параллельно, хотя тайм-аут 5 секунд все еще довольно высок, и у Вас есть БОЛЬШОЕ ожидание серверов - если у Вас нет ОГРОМНЫХ проблем задержки, я рекомендовал бы провернуть это вниз к 2-3. Это должно сократить runqueue немного.

Если бы Вы уже не получили mod_deflate, установленный на веб-сервере - затем я рекомендовал бы, чтобы Вы сделали так - и добавили ob_gzhandler () к Вашим Сценариям PHP. Можно сделать это как автопредварительно ожидание:

if(!ob_start("ob_gzhandler")) ob_start();

(да, copression использует больше ЦП - но необходимо сохранить ЦП в целом путем вытаскивания серверов из runqueue быстрее / обрабатывающий меньше пакетов TCP - и в качестве награды, сайт также быстрее).

Я рекомендовал бы установить верхний предел для MaxRequestsPerChild - говорит что-то как 500. Это просто позволяет некоторый оборот на процессах в случае, если у Вас есть утечка памяти где-нибудь. Ваши процессы httpd надеются быть ОГРОМНЫМИ - удостоверяются, что Вы удалили любые апачские модули, в которых Вы не нуждаетесь и удостоверяетесь, что подаете статическое содержание с хорошей информацией о кэшировании.

Если Вы все еще видите проблемы, то проблема, вероятно, в рамках кода PHP (если Вы переключаетесь на использование fastCGI, это должно быть очевидно без любой основной потери производительности).

обновление

Если статическое содержание не варьируется очень через страницы, то с этим могло бы также стоить экспериментировать:

if (count($_COOKIE)) {
    header('Connection: close');
}

на Сценариях PHP также.

7
ответ дан 2 December 2019 в 21:37

Необходимо рассмотреть установку асинхронного обратного прокси, потому что много процессов в состоянии W довольно высоки также. Ваши процессы Apache, кажется, тратят много контента отправки времени для замедления клиентов по сети, заблокированной на этом. Nginx или lighttpd как frontend к Вашему серверу Apache могут уменьшить много процессов в состоянии W существенно. И да, необходимо ограничить много запросов проверки активности. Вероятно, стоит попытаться выключить проверку активности.

BTW, 107 процессов Apache слишком высоки для 22 RPS, я смог служить RPS 100-120 с помощью только 5 процессов Apache. Вероятно, следующий шаг должен представить Ваше приложение.

4
ответ дан 2 December 2019 в 21:37

У Вас есть две строки в Ваших vmstat, которые показывают, что Ваше время ожидания ЦП довольно высоко, и вокруг тех, Вы делаете достаточное количество записей (io - филиал) и контекстное переключение. Я посмотрел бы на то, что пишет блоки, и как устранить то ожидание. Я думаю, что большая часть улучшения могла быть найдена в улучшении Вашего диска IO. Проверьте, что системный журнал - установил его для записи асинхронный. Удостоверьтесь, что кэш записи Вашего контроллера работает (проверьте его - у Вас могла бы быть плохая батарея).

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

1
ответ дан 2 December 2019 в 21:37

необходимо рассмотреть выключение проверки активности как первую попытку...

с 107 запросами, обработанными, я сохранил бы MaxSpareServers выше затем, что Вы устанавливаете...

По моему скромному мнению, в долгосрочной перспективе nginx как обратный прокси для статического содержания должен быть, учитывают

0
ответ дан 2 December 2019 в 21:37

Первое предложение: отключите сообщения проверки активности. Мне только когда-либо был нужен он, когда я мог определить определенную ситуацию что увеличенная производительность, но в общих запросах/секунда, уменьшенных с включенной Проверкой активности.

Второе предложение: Установите MaxRequestsPerChild. Я повторяю symcbean здесь, он поможет с трансформацией процесса в случае утечки памяти. 500 хорошая начальная точка.

Третье Предложение: Увеличение MaxClients. Приблизительное вычисление для этого является (физическая память - память, используемая процессом non-httpd) / размером каждого процесса httpd. В зависимости от того, как httpd был скомпилирован, это число макси в 255. Я использую 250, чтобы мои общедоступные серверы имели дело с google/yahoo/MS, проверяющим системы.

Предложение Forth: Увеличение MaxSpareServers: что-то как 4-5x MinSpareServers.

Обнажая те предложения сбой, я посмотрел бы на выравнивание нагрузки с обратным прокси или кэш-памятью для DB.

0
ответ дан 2 December 2019 в 21:37

Теги

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