homer18

Рейтинг
60
Регистрация
07.11.2007
Ogneyar:
Так у вас сайт по поиску в ЯКе находится?

Нет. Точнее не только. Сайту присвоена тематика и в поиске по ЯКу он находится. Но кроме того, если сделать запрос http://yaca.yandex.ru/yca?text=www.site.ru&yaca=1 то выводится список отдельных страниц находящихся в ЯКе, каждая со своим ТИЦем.

dmitrii_trof:
нарожом лезть

Куда лезть?

А что такое PIDS? Первый раз слышу и в гугле найти не могу.

Пришлось мне немного побыть Вашим тестером и несмотря на то, что в целом всё заработало как мне надо, полагаю, есть над чем поработать.

Арендовал я VPS, тариф OVZ-6 и как доп. услуга - isp manager lite. ВПС взял для разного рода экспериментов и в т.ч. хотел посмотреть разные операционки (debian и centos) и разные конфигурации софта. Так вот столкнулся с целой пачкой проблем если "переустановить vds" из панели VDSmanager.

если устанавливать образ centos 5 + ispmanager superlite

1) При первом заходе панель ругается, что "У вас установлены устаревшие, неподдерживаемые темы оформления, мы настоятельно рекомендуем удалить их.". Ладно, это не страшно - удаляем.

2) После выполнения всех шагов в первоначальной настройке ISPmanager'a (имя сервера, часовой пояс, пароли для рутов, логи) - запускаю phpmyadmin и пытаюсь залогиниться под рутом. Ничего не выходит, не пускает. Создаю в панеле ISP пользователя, для него создаю БД и нового пользователя БД. Пытаюсь этим пользователем зайти в phpmyadmin - и снова не пускает.

3) решаю удалить установленный по умолчанию squirrelmail-1.4.8-5.el5.centos.10. Для начала просто отключаю его (нажимаю на синюю лампочку) - вроде всё нормально, отключилось. Дальше пытаюсь удалить - но ничего не удаляется, программа продолжает отображаться как установленная, но отключенная. Установка новых пакетов вроде работает нормально (nginx установился без вопросов).

4) пытаюсь импортировать пользователя с другого ISP manager'а, импорт заканчивается рядом ошибок (и там и там все основные параметры - по умолчанию + отключен squirrelmail и установлен nginx), импортируемый юзер создаётся, база для него тоже, а вот основные файлы сайта - нет, почты тоже нет. (в приведенном логе ошибок свой домен заменил на site.ru)

Jan 7 16:43:11 Failed to initialize module wwwaddtypes: unknown error. Skip it.
Jan 7 16:43:11 Restoring site.ru failed: Failed to run function domain.edit: code=9 Code 9 . Skip it.
Jan 7 16:43:11 emaildomain: Failed to restore site.ru: Failed to run function emaildomain.edit: code=9 Code 9 . Skip it.
Jan 7 16:43:11 Restoring admin@site.ru failed: Failed to run function email.edit: code=3 Not exists . Skip it.
Jan 7 16:43:11 Restoring admin@site.ru failed: code=3 Not exists . Skip it.
Jan 7 16:43:11 wwwdomain: Failed to restore site.ru: Failed to run function wwwdomain.edit: code=9 Code 9 . Skip it.

Т.е. толком ничего не работает.

Ладно сносим этот образ и ставим debian 5 + ispmanager superlite

1) заходим в ISPmanager и ... видим красненькую надпись

Fatal error
Invalid license

Обратился в техподдержку с этой проблемой - её сразу решили. Но ради интереса переустановил опять тот же образ - и снова увидел эту надпись :(

Справедливости ради хочу сказать, что после установки пустого образа debian 6 (без ispmanager'a) и последующего скачивания скрипта с сайта ispsystem.com и установки панели - всё заработало на отлично. Никаких из перечисленных выше проблем не наблюдалось (т.е. винить мои кривые ручонки вроде бы нет оснований, т.к. делалось всё точно так же)

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

Sandalia:
какое значение startservers и т.д.?

Апач работает под prefork.

StartServers 5

MinSpareServers 5

MaxSpareServers 10

MaxClients 150

MaxRequestsPerChild 0

Обычно (что сейчас, что тогда) - рабочими висят те самые 10 процессов. Только если сейчас 9 idle, то 31 декабря бездействовали 7.

Pilat:
Не знаю почему, но 25000 онлайн тремя апачевскими процессами не обслужить хоть убейся. Значит, было их не три, вот и всё :)

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

На каждого нового посетителя приходится ещё ~55-57 дополнительных запросов которые nginx обрататывает самостоятельно (картинки, js, css - да согласен, много. Картинки всё никак не соберусь в спрайты объединить), но все они должны кэшироваться на стороне клиента (в конфиг nginx'а вручную вписал expires). Получается, что общее число запросов к серверу перевалило за 60 млн, что вроде бы не так уж и мало и, подозреваю, кем-то уже может быть названо "ddos атакой".

Сервер подключен к 100мбитному каналу (не гарантированному), но обычно все 100мбит доступны (по крайней мере сколько я не проверял - 11мбайт/с получалось и качать и отдавать). 31 числа не догадался проверить :( может быть кто-то из соседей тоже трафик как и я генерировал (мой сервер на пике отдавал примерно 45-50мбит/с)

Для справки прикладываю картинку нагрузки на сайт от Яндекс.Метрики. Тревогу я забил примерно в 16 часов когда увидел, что график числа запросов стал рваным. И сразу обнаружил недоступность сайта из некоторых точек в хост-трекере и пинг-админе. Забыл сказать, тогда же я проверил на доступность соседний IP из тойже подсети что и мой сервер - там с доступностью проблем не было (понятно, что он может быть совсем в другом сегменте ДЦ, но скорее всего стоит рядом и подключен к тому же сетевому оборудованию).

Я вообще не понимаю дальнейшего обсуждения про всякие синкуки и подобное. Если первая страница открывается с тормозами, а последующие быстро и keepalive не при чём, то это проблема другого характера.

Другого - это какого? Я ещё в первом посте очень просил подсказать в каком направлении можно пофантазировать :)

png metrika.png
madoff:
Вот так и гробят сервера. плацем в небо тыкая.

Симптомы проблемы я описал. Массу предположений, что сам дурак - выслушал. Я, конечно, понимаю что основная часть тут присутствующих - это продавцы услуг, но всё же есть надежда на полезные советы. Предположения о том, что виноваты мои кривые скрипты с кэшированием, кривые сессии, кривое тестирование гугла, кривые настройки апача и nginx'a - разбиваются о стену фактов того, что ни в логах, ни в server-status'е ничего не было. Вполне разумно выглядит предположение, что вина могла лежать на сетевом оборудовании, например в стойке (а в самом дата-центре проблем никто и не видел, как мне и сказали). Но мне всё же кажется, что дело было в сервере.

Andreyka:
Я не поверю, чтоб синкуки в любом современном дистрибутиве были отключены заранее.

Везде пишут что для Debian'a по умолчанию выключено. Попробую у себя включить и подождать годик :)

Возвращаясь к моему предположению о том, что проблема может быть на более низком уровне. Как я уже писал - медленно открывался не сайт, а устанавливалось соединение (это было хорошо видно по результатам site-perf.com). Не могло ли это быть связано с небольшой SYN-флуд атакой, или даже просто количество трафика было таково, что вполне реальные пользователи создавали мини-DDOS? В описании к sysctl.conf наткнулся на интересную штуку net.ipv4.tcp_syncookies, которая:

Разрешает/запрещает передачу так называемых syncookies вызывающему хосту в случае переполнения очереди SYN-пакетов для заданного сокета. Когда в систему поступает слишком много запросов на соединение, то очередь может переполниться и тогда запускается передача syncookies в ответ на каждый SYN-запрос. Эта переменная используется для предотвращения syn-flood атак.

По умолчанию для debian она выключена. Пока не могу найти какие потенциальные минусы могут быть от её включения.

Вот тут выложены некоторые рекомендации по оптимизации стека TCP/IP для нагруженного сервера под linux, но статья старовата. Не знаю насколько предложенные там параметры актуальны (у меня ядро 2.6.35.7)

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

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

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

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

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

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

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

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

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

Всего: 88