Настройка сервера под высокую нагрузку

M
На сайте с 16.09.2009
Offline
278
#11
homer18:

Failed requests: 368

Это плохо. Ну а man siege полностью осилишь? Взять access.log и долбиться не на одну страничку - на точно так как делают клиенты.

Убедитесь, что запросы от siege не идут мимо вашего "кеша".

homer18:
Посмотрел в логах почему 368 Failed - там размер у них на 1 байт отличается.

Т.е. запрос не отвалился, сервер не возвратил 4** или 5** статус, а что?

Между чем и чем "размер отличается", поясните пожалуйста?

homer18:
Сервер сейчас под нагрузкой. По статистике LiveInternet >5000 online. Проблемы были вчера когда онлайн было >25000.

Ну так сделайте 25тыс, в чем конкретно проблема?

Абонементное сопровождение серверов (Debian) Отправить личное сообщение (), написать письмо ().
H1
На сайте с 07.11.2007
Offline
60
#12
myhand:
Это плохо. Ну а man siege полностью осилишь? Взять access.log и долбиться не на одну страничку - на точно так как делают клиенты.

Попробую, только похоже по хорошему предварительно надо будет мне брать второй сервер, переносить туда сайт, а потом уже играться с этим.

Убедитесь, что запросы от siege не идут мимо вашего "кеша".

Если файл "кэша" отсутствует, то php скрипт выполнится полностью и создаст этот файл. Если бы дело было в "кэше", то в server-status висели бы процессы соответствующих скриптов. Это бы нельзя было не заметить.

Т.е. запрос не отвалился, сервер не возвратил 4** или 5** статус, а что?
Между чем и чем "размер отличается", поясните пожалуйста?

Начинаю сомневаться в вашей компетентности. Если внимательно посмотреть то что я написал, то там видно Document Length: 21841 bytes. Отличие на 1 байт - это 21840 или 21842.

Ну так сделайте 25тыс, в чем конкретно проблема?

25 тысяч онлайн по статистике liveinternet это не 25 тысяч запросов в секунду. Как я уже писал, server-status апача сообщал о примерно 100-110 запросах в секунду. Запуск ab с параметром -c 100 даёт (по server-status) порядка 1000 запросов в секунду (сюда же входят запросы реальных пользователей).

M
На сайте с 16.09.2009
Offline
278
#13
homer18:
Если файл "кэша" отсутствует, то php скрипт выполнится полностью и создаст этот файл. Если бы дело было в "кэше", то в server-status висели бы процессы соответствующих скриптов. Это бы нельзя было не заметить.

Учитывая тенденцию "велосипедистов" быть, мягко говоря, малоквалифицированными программистами - пока не исключаю здесь проблемы. Например, что будет если запросов пришло несколько, а файла кеша еще нет?

homer18:
Если внимательно посмотреть то что я написал, то там видно Document Length: 21841 bytes. Отличие на 1 байт - это 21840 или 21842.

Отличите между *чем* и *чем*. Тем что скрипт пишет в заголовке и реальным размером вывода. Тогда это проблема. Учитывая что такая порнография у вас в 20% запросов - стоило бы исправить.

homer18:
25 тысяч онлайн по статистике liveinternet это не 25 тысяч запросов в секунду.

И что?

homer18:
Запуск ab с параметром -c 100 даёт (по server-status) порядка 500 запросов в секунду (сюда же входят запросы реальных пользователей).

Таки не осилил ман? Нет никакой реальной проблемы воспроизвести посещаемость по статистике LI. Лучше, конечно, использовать siege - раз о нем слышали...

H1
На сайте с 07.11.2007
Offline
60
#14
myhand:
Учитывая тенденцию "велосипедистов" быть, мягко говоря, малоквалифицированными программистами - пока не исключаю здесь проблемы. Например, что будет если запросов пришло несколько, а файла кеша еще нет?

Не скрою, программист я такой же как администратор. Но учиться никогда не поздно :)

Если приходит запрос а файла кэша нет, то скрипт создаёт временный файл со случайным именем и пишет в него результат работы (т.е. весь html файл), а в конце делается rename("временное_имя_файла","постоянное_имя_файла"). Не могу утверждать, но как мне кажется это достаточно надежный способ. Даже если будет одновременно несколько обращений к несуществующему кэшу, то проблем быть не должно - максимум это файл кэша несколько раз перезапишется.

Отличите между *чем* и *чем*. Тем что скрипт пишет в заголовке и реальным размером вывода. Тогда это проблема. Учитывая что такая порнография у вас в 20% запросов - стоило бы исправить.

Основная масса ответов по 21841 байт, но некоторые ответы в логах апача (с кодом 200) - 21840 или 21842. Почему - хороший вопрос. Буду думать. Но как это могло повлиять на мою проблему - пока не вижу связи.

Не может ли быть проблема быть связана с более низким уровнем? Например, со стеком tcp/ip? Там для меня пока совсем темный лес. Раньше где-то натыкался на интересные посты про оптимизацию серверов под большие нагрузки (правда под фряхой, а у меня debian) - так там какие-то изменения на уровне ядра предлагали делать. Сейчас правда ничего найти не могу :(

Andreyka
На сайте с 19.02.2005
Offline
822
#15

Как минимум три варианта

1. Глюк в коде. Наиболее реальный.

2. Легкий ддос на статику. У воркеров nginx кончились коннекты.

3. Проблемы на уровне активного сетевого оборудования

Не стоит плодить сущности без необходимости
H1
На сайте с 07.11.2007
Offline
60
#16
Andreyka:
Как минимум три варианта

1. Глюк в коде. Наиболее реальный.
2. Легкий ддос на статику. У воркеров nginx кончились коннекты.
3. Проблемы на уровне активного сетевого оборудования

1. Но по идее это же должно было быть видно. Если скрипты долго работают - их бы было видно по server-status?

2. По-моему у меня когда-то (ещё на небольшом VPS) была такая проблема, но nginx активно писал в логи о том, что ему не хватает коннектов.

3. Ну тут я, естественно, ничего не могу сказать :( жаль если так.

Похоже, чтобы понять в чем была проблема - надо или ждать следующего НГ или заказать где-то ДДОС чтобы создать примерно туже нагрузку и запустить сразу несколько админов на сервер :)

По чем нынче ДДОСы? ))

zexis
На сайте с 09.08.2005
Offline
388
#17

Зачем гадать?

Создайте нагрузку siege или ab.

Локализуйте проблему. Зайдите по IP на бекенд http://11.22.33.44:8080

H1
На сайте с 07.11.2007
Offline
60
#18
zexis:
Зачем гадать?
Создайте нагрузку siege или ab.
Локализуйте проблему. Зайдите по IP на бекенд http://11.22.33.44:8080

Дак не получается повторить. Если делаю относительно много конкурирующих запросов в ab - то в server-status вижу кучу открытых (работающих) соединений. Сайт начинает работать медленнее (хоть первый коннект, хоть 10й), LoadAverage подрастает до 3-4. Если делаю ещё больше конкурирующих запросов (например 1000) - уже валятся ошибки в логи, LA может быть и 15 и больше. Апач не справляется. Но это же не то, что надо.

Himiko
На сайте с 28.08.2008
Offline
560
#19
madoff:


Антон также подтвердил что никаких ошибок на сервере нет.

В то время как сайты тупят, сотрудник из systemintegra - говoрит нету ошибок ;) новогодняя сказка ;)

А давно у нас тормоза сайтов стали на 100% связаны с настройками сервера? К примеру, какой то блок рекламный может не прогружаться изза проблем на стороннем ресурсе и будут тормоза. или код той же сапы.

Мы все "умные", когда обсуждаем других

Профессиональное администрирование серверов (https://systemintegra.ru). Круглосуточно. Отзывы (/ru/forum/834230) Лицензии (http://clck.ru/Qhf5) ISPManager,VDSManager,Billmanager e.t.c. по низким ценам.
M
На сайте с 16.09.2009
Offline
278
#20
homer18:
Но это же не то, что надо.

Смоделируйте реальную нагрузку. Убедитесь, что ваш "кеш" при этом задействован.

Что непонятно?

Himiko:
А давно у нас тормоза сайтов стали на 100% связаны с настройками сервера? К примеру, какой то блок рекламный может не прогружаться изза проблем на стороннем ресурсе и будут тормоза. или код той же сапы.

И что, это разве не проблема? В сухом итоге: проблема есть, но источник ее определить не сумели.

Может ТЗ был принят безграмотный (сделай то, не знаю что), а может доверили выполнение нанятому школьнику. Извините, но в любом случае двоечка.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий