The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Как повисить скорость реакции апача?"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Оптимизация и Промышленные системы (Public)
Изначальное сообщение [Проследить за развитием треда]

"Как повисить скорость реакции апача?"  
Сообщение от teebot on 16-Мрт-07, 11:44 
Здравствуйте.

Вот сижу уже неделю над тем что бы побороть тормоза в апаче.
Моя история такова.
Есть сервер:
Intel(R) Xeon(TM) CPU 2.80GHz, 2 гига памяти, SCSI HDD, FreeBSD 5.4

На нем крутися апач+мускуль+ПХП. Это все хозяйство обслуживает сайт с посещаемостью приблизительно 18000 уникальных заходом в день.
Проблема, остро, встала тогда, когда после захода на сайт апач начинал отдавать контент только секунд через 40. Пробовал апач 1.3.33,34,37. Пробовал менять таймауты, MaxClients, MaxRequestPerChild и т.д. это не давало ожидаемого результата. Проблема в том, сколько бы MaxClients я не выставлял они через минуту все ломятся на сервер, хоть в документации и говорится что масксимально, без перекомпиляции апача, можно выставить всего 256 клиентов, я ставил до 370 и все они через минуту приходили на сайт (тоесть я видел 371 процесс апача по ps ax, с учетом того что KeepAlive on).

Я пришел к выводу что причина медленной реации апача в том что запросы к нему выстраиваются в очередь. Что бы хоть как-то разрузить апач была реализована схема на основе mod_rewrite+mod_proxy для заргрузки одного сайта сразу с разных серверов.

Это был огромный шаг вперед, сайт стал просто летать. Но через сутки сервер на котором стоит mod_rewrite+mod_proxy опять заполонили процесси апача, хоть задержка и возросла до 3 секунд, это всеравно можно считать успехов посравнению с 40 секундами. Загрузка серва составляет 0.3, в свапе 160 килобайт. Такое впечатление что сервер просто отдыхает

Но меня не покидает мысль о том что если он постоит еще сутки задержка будет 6 сек и т.д.

Посоветуйте пожалуйста хоть что нибудь как разгрузить сервер без ущерба для дела и клиентов. Я уже не знаю что читать и куда смотреть.

Пожалуйста помогите. Пожалуйста...!!!

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "Как повисить скорость реакции апача?"  
Сообщение от teebot on 16-Мрт-07, 11:49 
ой забыл добавить.
прикрутил к ПХП оптимайзер, поставил апач модули для защиты от флуда и ДОС атак, ограничивающие количество запросов с одной айпишки, поставил mod_security.

Бенчмарк апач в начале итории при полной загрузке клиентами показывал 0.11 запросов в сек
после все проделаного при полной загрузке клиентами 3.5 запросов в сек.
Улучшения на лицо, но задержка осталась.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Как повисить скорость реакции апача?"  
Сообщение от afterstep email on 16-Мрт-07, 13:27 
>ой забыл добавить.
>прикрутил к ПХП оптимайзер, поставил апач модули для защиты от флуда и
>ДОС атак, ограничивающие количество запросов с одной айпишки, поставил mod_security.
>
Явно погорячился ;) кстати, и нагрузку на сервер увеличил ;)
>Бенчмарк апач в начале итории при полной загрузке клиентами показывал 0.11 запросов
>в сек
С какими параметрами запускал?
---
Недостаточно данных, все "общий треп". Особо умилило 371 процесс по ps ax. А mod_status пользовать не пробовал? а что те top показывает - откуда load берется? или load нормальный, а у тебя php скрипты тормозят?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Как повисить скорость реакции апача?"  
Сообщение от teebot on 16-Мрт-07, 13:34 
>Явно погорячился ;) кстати, и нагрузку на сервер увеличил ;)
может и погорячился

>С какими параметрами запускал?
без параметров
>---
>Недостаточно данных, все "общий треп". Особо умилило 371 процесс по ps ax.
как один из вариантов диагностики почему нет

>А mod_status пользовать не пробовал? а что те top показывает -
>откуда load берется? или load нормальный, а у тебя php скрипты
>тормозят?
нагрузки нет
load averages:  0.55,  0.34,  0.28
Swap: 2048M Total, 164K Used, 2048M Free

mod_status ничего не показывает.
после apachectl status просто висит, завершаю по ctrl+c


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Как повисить скорость реакции апача?"  
Сообщение от teebot on 16-Мрт-07, 13:55 
>mod_status ничего не показывает.
>после apachectl status просто висит, завершаю по ctrl+c

уже сделал что работает mod_status
жду когда появтся задержки


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Как повисить скорость реакции апача?"  
Сообщение от alexvs email(??) on 16-Мрт-07, 16:55 
>>mod_status ничего не показывает.
>>после apachectl status просто висит, завершаю по ctrl+c
>
>уже сделал что работает mod_status
>жду когда появтся задержки

Была подобная ситуация, решил её в двумя вещами:
1) fastcgi - боюсь вам не подойдёт
2) MaxClients = 512

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Как повисить скорость реакции апача?"  
Сообщение от teebot on 21-Мрт-07, 17:16 
>>mod_status ничего не показывает.
>>после apachectl status просто висит, завершаю по ctrl+c
>
>уже сделал что работает mod_status
>жду когда появтся задержки

ну вот и наступала эта ситуация
вот какая картина


Server Version: Apache/1.3.37 (Unix) PHP/4.4.6 with Suhosin-Patch
Server Built: Mar 19 2007 07:58:58
Current Time: Wednesday, 21-Mar-2007 08:07:13 CST
Restart Time: Wednesday, 21-Mar-2007 07:11:33 CST
Parent Server Generation: 0
Server uptime: 55 minutes 40 seconds
Total accesses: 6623 - Total Traffic: 24.9 MB
CPU Usage: u7.8125 s9.73438 cu0 cs0 - .525% CPU load
1.98 requests/sec - 7.6 kB/second - 3946 B/request
300 requests currently being processed, 0 idle servers

WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW....................
................................................................
................................................................
................................................................

Scoreboard Key:
"_" Waiting for Connection, "S" Starting up, "R" Reading Request,
"W" Sending Reply, "K" Keepalive (read), "D" DNS Lookup,
"L" Logging, "G" Gracefully finishing, "." Open slot with no current process

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

Что это может быть? Сетевая? Память?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "Как повисить скорость реакции апача?"  
Сообщение от Nikolaev D. JET email on 24-Мрт-07, 14:56 
может апач кривой ?
процессы грохает медленнее чем они отваливаются ?
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "Как повисить скорость реакции апача?"  
Сообщение от teebot on 26-Мрт-07, 10:19 
>может апач кривой ?
>процессы грохает медленнее чем они отваливаются ?

да он их не грохает.
сейчас на сервер никто не ходит а картина в точности такая как и была 21 марта.
насчет кривизни апача. сомнительно потому что, во-первых, пробовали 1.3.33,34,37 апач, а во-вторых, эта же версия стоит на том серваке который сейчас работает вместо глючного и все летает.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "Как повисить скорость реакции апача?"  
Сообщение от KSasha (??) on 14-Июн-07, 18:45 
может быть уменьшить keepalivetimeout
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

10. "Как повисить скорость реакции апача?"  
Сообщение от michelle (??) on 15-Июн-07, 21:48 
>может быть уменьшить keepalivetimeout

А еще ограничить на файерволе количество коннектов с одного IP!
И проверь sockstat | grep httpd - один-ли ip наворачивает такое количество коннектов, если так, то это synflood атака на апач (см список проблем с безопасностью apache от 30 мая здесь на сайте)!

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

11. "Как повисить скорость реакции апача?"  
Сообщение от johnjoy email(??) on 18-Июн-07, 21:36 
думаю, что смело можно ставить nginx фронтом

большинство процессов апача у Вас просто отдают контент; пока контент до клиента дойдет, апач просто прокуривает, а остальные запросы крутятся в очереди.

отдайте задачу отдавания контента nginx-у, а апач пусть только работой занимается )

mod_proxy, конечно хорошо, но несравним

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

12. "Как повисить скорость реакции апача?"  
Сообщение от johnjoy email(??) on 18-Июн-07, 21:47 
да, еще
обязатально отключите KeepAlive (хотя при наличии жинкса можно и поэксперементить)
Пока эти процессы ждут окончания времени кипалайва (то есть нихрена не делают), вам соответственно недоступна часть пула процессов для свезеподключившихся клиентов.

Для жинкса вероятно вам будет достаточно запускать в апаче десяток процессов.

кроме того,
дабы на бекэнде у вас нормально отрабатывались ip клиентов, подключите к апачу mod_rpatf
и на жинксе в разделе location
            proxy_set_header   Host             $host;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;

Также советую на жинксе включить компрессию отдаваемого контента

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру