Картиночный сервер, где хранятся и обрабатываются все картинки, начал глючить. / админские истории :: продолжение в комментах :: ceph и все все все :: разное

админские истории ceph и все все все продолжение в комментах 
Картиночный сервер, где хранятся и обрабатываются все картинки, начал глючить. Раз-два в неделю зависает так, что даже автоматический резет не помогал. Похоже проблема хардварная. В хетцнере это решается просто - отдаёшь сервер им на диагностику на 12 часов. Делать неработающими картинки на 12 часов не очень хотелось. Поэтому надо было перенести его на другой сервер.

Но тут я подумал - у меня, включая картиночный, уже есть 4. На трёх диски не загружены почти. Память есть. В основном используется процессор для отдачи php. Почему бы не сделать какую-нибудь кластерную фс и убрать одну из точек отказа? Тогда все сервера с апачем будут равноправными, все вместе писать/читать с этой фс и всё будет збс.

Посмотрел какие есть кластерные фс. Самая крутая - ceph. Уже год как вышли из беты. Пишут, что офигенно быстрая и надёжная. Самовосстанавливается, нет одной точки отказа. В будущем можно просто подключать к ней жёсткие диски и она всё будут перебалансировать.

Придумано - сделано. Код на php быстро подправил: ломать - не строить. По сути надо было сломать весь код, который отвечал за перенаправление картиночных запросов на картиночный сервер.

Поставил ceph. Во время установки удивило, что они полностью тестируют только на убунте с дефолтным ядром 3.2, но рекомендуют обязательно обновляться до ядра 3.4/3.6, ибо на более ранних версиях у них не работают серверные модули о_О. Ядро 3.6 и "стабильность" у меня в глове не укладывались, но можно было всё сделать и без модулей ядра. Поэтому ceph был успешно установлен и подмонтирован.

С первого взгляда, всё было хорошо. Есть на одном сервере создать файл, то он появлялся на другом сервере.

И тут я совершил роковую ошибку. Я доверился их заявлениям о скорости/стабильности и переключил сервера на использование ceph.

продолжение следует...

Подробнее
админские истории,разное,ceph и все все все,продолжение в комментах
Еще на тему
Развернуть
noavatar noavatar 20.03.201314:20 ответить ссылка 0.4
Да, живу в Эстонии. — PussyFucker69#ответить↓ %comment_rating_1944408%
http://joyreactor.cc/post/701493#comment1944408
Так и должно быть?
noavatar noavatar 20.03.201314:52 ответить ссылка -0.3
это тебе повезло. Он удалил коммент ровно в тот момент, когда страничка рендерилась для тебя.
koka koka 20.03.201315:27 ответить ссылка -0.3
А я думал, что в моей жизни не происходит ничего удивительного. А поди же ты!
прям как детектив. жду продолжения)
жду когда же уже можно посмеяться
NoFear NoFear 20.03.201314:31 ответить ссылка 0.0
уже переключив сервера на использование ceph было обнаружено:
1) скорость записи на ceph оказалась около 5Мб/с с пяти серверов, на каждом из которых почти незагруженный raid1 2x3Gb sata. Получалось, что каждый сервер добавлял к общей скорости 1МБ/с. И это был какой-то пипец.
2) "пинг" данных был жутко большим. То есть, время записи любого мелкого файла была в среднем несколько секунд.
3) На серверах вдруг началась огромная нагрузка на харды.
4) сервер метаданных - который хранит список файлов и их метаданные вроде размера, прав и т.д. - не хочет кластеризовываться. Их было запущено 3, но реально работал только один. При этом жрал память и проц очень нехило.

Единственный работающий сервер метаданных работал на достаточно загруженной железке. Я его туда хотел поставить просто как резерв. Начал искать как его исключить из кластера - нигде не написано. Ну остановил сервис. Файловая система перестала отвечать на ls. Мониторы состояния писали, что сервер метаданных наверное упал или лагает. Ну я подумал - они же самовосстанавливающиеся! Сейчас они посмотрят на это и переключатся на другой сервер метаданных.

Прошло 30 минут.

Мониторы всё так же говорили, что один сервер метаданных "подлагивает". А остальные замечательно работают, но запросы туда не идут - все ждут, когда этот самый лучший сервер поднимется обратно. Включил его обратно. Некоторые файлы побились.

После этого я перестал эксперементировать с ceph. Позже я прочитал две интересных записи по нему:
1) файловая система на основании ceph - эксперементальная и нифига не тестировалась. И когда они писали "ceph - стабильный и крутой!" они не имели ввиду файловую систему. А то, что во всех мануалах в первую очередь пишется как создать cephfs - это для наглядности
2) их демон время от времени запускает замечательную команду sync. Вернее, он её похоже постоянно запускает. И если у вас на одном сервере кто-то ещё работает с диском, то настаёт пипец и он перестаёт использовать файловый кэш.

Несмотря на фейл с ceph, я всё же хотел убрать эту точку отказа. День потратил на изучение других фс и вот что нашёл:
1) glusterfs - восстанавливается не вручную. Время от времени случаются фейлы и вся система умирает. Об этом опыте - во втором абзаце статьи http://habrahabr.ru/post/157029/ . У них на форуме нашёл пару вопросов "У меня на последней версии всё пало нахрен. Что делать?". И ответов "ага, у меня тоже. Буду откатываться до предпоследней". При попытках потрогать ручками обнаружил "интересную" поддержку ipv6:
- утилита для онлайн-конфигурирования не умеет ipv6. На форуме советовали в таком случае использовать конфигурирование через кофиг-файлы.
- начиная с версии 3.2 нельзя конфигурировать его через конфиг-файлы. Надо использовать утилиту (которая всё так же не умеет ipv6)
- если сервер слушает порт на ipv4, то подключиться к другому серверу через ipv6 он не сможет. Из трёх пунктов следует, что запустить кластер на ipv6 можно. Но его нельзя сконфигурировать. Зато напротив "ipv6 support" стоит галочка.
- нет никакой системы авторизации. Везде советуют убивать нафиг фаервол - он только мешает. Никаких логин-паролей. Можно подключиться к любому серверу и выполнять админские команды. Надо будет попробывать просканировать чужие сервера на предмет наличия этого порта и проверить возможность запуска команды gluster volume stop & delete.

2) lustre - есть только под ядро 2.6.16 - rhel5. Я уже всё обновил до rhel6, так что отпадает.
3) ocfs2 - официальные билды только под rhel5. Говорят с openvz плохо работает
4) gfs2 - поддержка от редхата, но похоже надо очень сильно мудрить с настройкой.

После этого я плюнул, перенёс картиночный сервер на другую железку и сейчас отдам старую на тестирование. Печаь и грусть. Нет нормальных кластерных фс =(
koka koka 20.03.201314:45 ответить ссылка 2.6
Ja,Ja, ich bin kaputt! Я же предупреждал про многое в оптимизации ещё давно(в прошлом посту)... Мог бы спросить прежде чем фигню творить, есть куча других способов, если ты всего-то мелкий джойреактор на ЧЕТЫРЁХ серверах держишь - это мда, клиника. Мало того, я тебе могу гарантировать что нормальных таких фс для хайлоада даже под кривой линукс 3.x нету, не так разбивать надо.
Бггг. Ты в прошлом посте замечательно отметился, да
koka koka 20.03.201318:33 ответить ссылка 0.0
Ну, я не телепат, а async есть почти во всех и линуховых ФС, это как бы К.О. намекает. Естественно ещё можно избавляться от atime, но мало чего даёт, geom scheduler тоже(в линуксе штатные), но тоже ни хрена не дают. А вот что в никсах с софтрейдами кроме ужаса md - не смотрел. На деле это в разы быстрее чем хреновый LSI без кэша к примеру.

Да посты нахрен, я вообще много где по оптимизации www отметился, только это уже моё личное развлечение.
ну мне надо объяснять, почему твоё предложение про "async флаг монтирования ufs" - хуета, или не мешать тебе общаться с самим собой? =)
koka koka 20.03.201318:46 ответить ссылка 0.0
Скорее с тобой, если ты не можешь прочитать в своей интереретации как "async флаг монтирования ext*".
тебе объяснять, почему твоё предложение про "async флаг монтирования ext*" - хуета, не отличимая от "async флаг монтирования ufs"?
koka koka 20.03.201318:58 ответить ссылка 0.0
Давай, а потом я тебе объясню кто ты и почему :P Может попутно с тем местом где ты неправ.
Для начала ликбез тебе что такое опция aync в mount. Подробнее можешь почитать в манах:
1) данная опция в линуксе включена по-умолчанию
2) во фре по-умолчанию стоит noasync. Несмотря на название, она означает не отсутвие асинхронности, а асинхронность с данными, но синхронность с метаданными. Даже если бы у меня была фря, затык у меня был явно не с метаданными и смена флага с noasync на async ничего бы не поменяло.
3) этот флаг говорит о том, должно ли ядро использовать различные кэши перед записью на диск или нет. При этом общение юзерспейса с ядром будет синхронным, если использовать read и асинхронным, если использовать aio_read, независимо от флагов монтирования.

таким образом, у тебя аж три фейла:
1) у меня этот флаг был включён, так как у меня линукс
2) даже если бы у меня была фря, этот флаг мог бы изменить только поведение работы с метаданными
3) этот флаг изменяет взаимодействие ядра с диском. Мне нужна была асинхронность юзерспейса с ядром.
koka koka 20.03.201319:15 ответить ссылка 0.0
1) Ну не знал, однако синхронность метаданных ПО УМОЛЧАНИЮ ЖЕ в UFS2=no soft updates/no journal(любым методом коих два-четыре от реализации) и нету никаких метаданных, уровень ext2 , потому и быстрее. В твоей итерации это будет звучать как выключи журнал блеять, всё равно не поможет.
2) см. п.1, и от чего затык я ещё не смотрел, я же не в курсе деталей, просто совет.
3) Этот флаг НЕ говорит о том, если у тебя частный случай реализации совпадает с этим - это может измениться как нефиг делать хоть в следующем патче, этот флаг говорит именно о последовательном выполнении операций, ни о каком кэше речь вообще не идёт. А уж с AIO это вообще свой разговор, при том в основном я его результат на практике вижу негативным.

А теперь аксиома от меня лично.
Первое - не думай что я тебе хуй с бугра, это всё уже видел.
Второе - нормальная асинхронность и мультипоточность под линукс(да и не только) до сих пор в жопе блеять. Форки и разделения по процессам до упора рулят и будет тебе асинхронность.
Третье - см. выше про memcache и приведи данные по рейдам, особенно vmstat, очень вероятно что всё упирается в это если интересно дальше придти к результатам.
пока я вижу, что ты хуй с бугра. Пришёл, ляпнул хрень, сейчас говоришь, что не читал пост, а просто ляпнул.

журнал в ext4 у меня сейчас отключен. Прирост производительности при выключении заметен не был.
koka koka 20.03.201319:35 ответить ссылка 0.0
Ты не понял смысла первого. А посты я не читаю естественно старые, они всплывают и улетают со страницы нафиг...

Ну, за неоценкой следующего шага смысла тогда говорить. Ты не понимаешь тех вещей что я пишу о железе.
интересно стало, что же ты мне нагадаешь по vmstat. Вот данные с кэшового сервера:

[root@serv9 ~]# vmstat 5 5
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 202196 127984 264900 11337516 0 0 4269 93 1 1 5 21 66 9 0
2 0 202188 98776 264832 11273216 13 0 58129 931 69537 11149 6 46 42 5 0
5 1 202188 106108 264956 11323012 0 0 55093 2248 70072 11071 7 46 41 6 0
6 0 202188 116636 265644 11397516 0 0 37802 1439 70752 11593 7 40 48 4 0
9 0 202188 100532 265776 11414192 0 0 44830 2246 68365 10704 7 39 50 4 0
[root@serv9 ~]#

Скажи, с какими опциями примонтировать фс, или изменить в sysctl, чтобы сервер смог обрабатывать в 2 раза больше запросов? =)
koka koka 20.03.201320:51 ответить ссылка 0.0
В 2 раза можешь у б-га спросить. Это очевидно. Хотя можно и в три если убрать таки HDD. неясно чего там у тебя в своп лезет - swappiness? swap inactive? Вообще было бы нормально, если бы не ВНЕЗАПНО 13 si в одном измерении, такого быть вообще не должно в процессе работы, шанс нарваться на рандом idle swap около нуля, это ненормально в процессе, надо больше измерений.

По стате diskio очевидно что нужен RAM кэш наиболее частого, хотя бы в виде apache hdd+ramdrive, под линухом он стабилен чего не скажешь о BSD, а в идеале то что описывал выше через модуль nginx memcache. Вообще может тут ничего и не нужно, но очень оптимально было бы. А на деле зависит от модели рейда и HDD что стоят, скажем так, для аппаратного это АБСОЛЮТНО ненормальный стат, так что у тебя какая-то хрень вместо контроллера стоит типа IntelServeRAID или софтрейд(что в принципе одно и то же, и даже побыстрее с рамкэшом чем LSI/Intel(один хрен на тех же чипах почти всегда) без набортного).

Далее АБСОЛЮТНО ненормальная стата по %CPU-System и Intrs/sec, увеличивать буферы сокетов и тюнить сетевые тут просто обязательно, тут чисто твои кривые руки, даже у базовых интелов есть interrupt moderation и tx/rx buffers, а вообще я бы сказал что говно сетевые стоят без аппаратного оффлоада или базовые/старые интеловские или того хуже, igb - не помню как оно там будет в живых названиях, но и они тюнятся.

И это только краткий перечень твоих косяков. Так что приводи полный конфиг железа включая конфиг массивов - я уже точно смогу сказать что делать по дискам, ну а по сетевым всё очевидно сходу... Только учитывай что увеличивая буферизацию от балды до файлосерверных размеров в метр теряется response time по сети, так что это плавно лучше смотреть, либо вообще тюнить auto increase buffer size.
si - возможно из-за того, что я давно не логинился на сервер. Тут залогинился и он решил сбросить какую-нибудь сильно старую память в своп. В целом свапа заюзано 200Мб.

диски там - Рамдиск на 1Гб + ссд 256Гб.

да, про intrs/sec - не знал. Сейчас почитаю как подтюнить сетевуху. Хотя как раз она беспокоит меньше всего - половина процессорных ресурсов не занята.
koka koka 20.03.201322:58 ответить ссылка 0.0
Это ещё мелочи, я вот не понимаю что значат "в два раза" твои если там ресурсов ещё куча свободных и вообще кэша даже до хрена что сильно сглаживает HDD. Показывай тогда уж iostat -c/-d и какой там аналог systat -if?
это данные по сетевым интерфейсам? аналога systat нет. Вот ближайший аналог:

08:20:45 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
08:20:46 PM eth0 166805.00 42324.00 32858.76 198843.17 0.00 0.00 0.00
08:20:46 PM venet0 60588.00 52107.00 86054.00 4989.19 0.00 0.00 0.00

кстати, интел пишет, что у них interruptsThrotille стоит по-умолчанию 8000 в секунду на ядро. Так что получается 60к в секунду. Уменьшать советуют только в случае проблем, но вроде как оно не сильно поможет.
koka koka 20.03.201323:24 ответить ссылка 0.0
вернее, интел пишет, что можете увеличить это значение, чтобы уменьшить пинг, но тогда проц будет сильнее кушаться. Про рекомендации уменьшать ничего не написано. Так что, наверное они выбрали это значение как оптимальный баланс cpu/latency
koka koka 20.03.201323:28 ответить ссылка 0.0
Количество буферов(кроме рекомендаций и HW limits) лучше крутить до упора на самой сетевой,не те размеры, слабо влияет. А вот sockbuf уже лучше крутить средствами OS.
Во FreeBSD есть в дефолте очень забавная вещь для нубов:
net.inet.tcp.recvbuf_auto: 1
net.inet.tcp.sendbuf_auto: 1
При большом количестве запросов надо соблюдать баланс таки к ручному постоянному(ну или лимиты/интервалы роста менять), может и в линухе есть аналоги. В твоём раскладе оно не нужно(в районе recv=8192/16384, лучше ставить самим nginx, ну и куча вещей про оптимизацию nginx вроде accf если допилили в линухе), но всё же.
net.core.rmem_default = 8388608
net.core.wmem_default = 4194394
net.core.rmem_max = 33554432
net.core.wmem_max = 33554432
net.ipv4.tcp_rmem = 4096 8388608 16777216
net.ipv4.tcp_wmem = 4096 4194394 1677721
koka koka 20.03.201323:44 ответить ссылка 0.0
Ну это и есть дефолт первого, а вот второго - твоя работа? О третьем можно вообще забыть, всё равно см. далее. Как уже писал - ставить лучше через сокет самого софта, а не глобально.
Ну тут понятно что ты нуб. При таких косяках, да и при кривом оффлоаде или его отсутствии у роста CPU есть предел, и он невелик, выше пойдёт ЗАДЕРЖКА ОТВЕТА и спад скорости, а не упор в CPU. Если есть что-то с файлохостингом - можешь сам и увидеть связь покрутив переменные, какие уже от карты зависит, но в любом раскладе оптимизация сетевого стэка помогает.

По этой статистике ничего особенного кроме странного среднего [M]TU, но для нагруженного разным контентом сайта с кучей запросов, а не большими файлами это, ну почти нормально. Хотя у тебя что, хостинг что ли?
про cpu твой пассаж не понял.

что значит "у меня хостинг"?
koka koka 20.03.201323:41 ответить ссылка 0.0
По запросам - что на серверах?
это единственный фронтэнд реактора. Через него раздаётся только реактор - весь.
koka koka 20.03.201323:46 ответить ссылка 0.0
Да быть не может. СЛИШКОМ много запросов в секунду получается и слишком короткие ответы, даже учитывая HEAD.

Ты вообще логи читал? Там боты небось 40+% запросов, у тебя хотя бы evasive настроено?
mod_evasive - нет. Боты, которые нагружают сервер отсекаются fail2ban через iptables.
koka koka 21.03.201300:15 ответить ссылка 0.0
Ну приколист... Так тебе и 10 серверов не хватит. И это всего то 60rq/sec на php(а статик никого не волнует при правильной настройке nginx).
да не, 3ёх серверов вполне хватает. По CPU даже двух хватит, только в пиках будет тормозить.
koka koka 21.03.201300:21 ответить ссылка 0.0
Тут одного квада то то много... С всего 8 гигами в пределе.
ты уж определись. То ты говоришь, что 10 не хватит. То что одного много.
koka koka 21.03.201308:44 ответить ссылка 0.0
Тебе :P
Кстати да, ты же ещё со своим небось ядром 3.x сидишь, конечно нонсенс, но может быть даже так, что совсем кривые руки и не сетевые дёргают на такое количество int, а что ещё при таком кривом ядре...
я сижу на ядре rhel6 = 2.6.32. Не знаю, откуда ты вычитал про ядро 3.х
koka koka 20.03.201323:25 ответить ссылка 0.0
Тогда каким хреном ты собственно ceph делал без ядерного модуля? Это же кур смешить, ты бы ещё файлы на FUSE NTFS разделе держал чтоб уж совсем понятно было.
P.S. Только подумалось - ты что, САМ ШЕЙПИТЬ пытаешься что ли на выходе трафик???
P.S. Хочешь реально скорости - бери сходу NFS, лучше заказать отдельный канал между серверами если в одной стойке. Реально СКОРОСТИ другого масштаба - простой скрипт на php , кладущий заранее известные файлы в memcache, а уж оттуда умеет забирать напрямую nginx, но суть в чистке, для этого скрипт и нужен.
перейду в новый тред, а то тот уж слишком сжался.

А какой средний размер пакета тебя не устраивает - rx или tx?
koka koka 21.03.201308:56 ответить ссылка 0.0
Оба. Статистика нереальная же.

166805/32858 198843/42324

Пакет 1.5к, вообще должны быть забиты под завязку на раздаче, а на деле 166805/1024*1500=244343(ну -20% TCP max, а тут 32858!) или c обратной стороны 42324/1.5 примерно 28816 плюс оверхед опять же. Вопрос - откуда столько лишних? По раскладу не стоит даже blackhole судя по всему и сервер возвращает icmp unreachable.
всё ещё нифига не понял. Как ты считаешь средний пакет и какой он у тебя получился вообще?
koka koka 21.03.201313:44 ответить ссылка 0.0
Ethernet стандарт пакет 1.5k, для сингл сервера не маршрутизатора стороннего трафика не генерируемого в sent/recieved быть не должно.
а какой у меня средний размер пакета на отдачу и приём?
koka koka 21.03.201314:05 ответить ссылка 0.0
Ты что курил? Основы сетей, размер пакета не меняется. Берём rcvbytes/sentbytes ,добавляем оверхед tcp и запросов(но там несколько пакетов, по хорошему вообще 5 на сессию, если keepalive - много меньше), делим на 1.5k в пакет и сравниваем, ну если бы в 2 раза ещё разница была - может как-то и сходилось бы, но не так.
берём txkB/s = 198843.17
берём txpck/s = 42324
делим первое на второе. Получаем, что средний пакет - это 4.69 кб.
Я где-то ошибся в расчётах?
koka koka 21.03.201314:16 ответить ссылка 0.0
Тогда получается что эта статистика бред, я для rx смотрел, там обратный бред. Ну или у тебя MTU 4000/5000 - это нестандарт.
Покажи ifconfig что ли. И чем статистику смотрел?
[root@serv9 ~]# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:25:90:93:61:EE
inet addr:50.7.172.170 Bcast:50.7.172.175 Mask:255.255.255.248
inet6 addr: fe80::225:90ff:fe93:61ee/64 Scope:Link
inet6 addr: 2001:49f0:c000:300::2/64 Scope:Global
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:229254182276 errors:0 dropped:0 overruns:0 frame:0
TX packets:123498389274 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:41630275020299 (37.8 TiB) TX bytes:538200667051089 (489.4 TiB)

[root@serv9 ~]# ping -s 5000 ya.ru
PING ya.ru (87.250.251.3) 5000(5028) bytes of data.
5008 bytes from www.yandex.ru (87.250.251.3): icmp_seq=1 ttl=56 time=15.7 ms
5008 bytes from www.yandex.ru (87.250.251.3): icmp_seq=2 ttl=56 time=15.5 ms
5008 bytes from www.yandex.ru (87.250.251.3): icmp_seq=3 ttl=56 time=15.5 ms
^C
--- ya.ru ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2294ms
rtt min/avg/max/mdev = 15.552/15.635/15.756/0.087 ms
[root@serv9 ~]#


что же делать? у меня, наверное, какой-то дефективный сервер, да?
koka koka 21.03.201314:30 ответить ссылка 0.0
Скорее какая-то дефективная статистика или ядро. У меня на маршрутизаторе транзит пакеты идут в счётчик пакетов, а вот в трафик не идут например, но тут хрен поймёт почему.
У меня похоже ещё и tcpdump дефектный! тоже показывает длину пакета больше 1500!

[root@serv9 ~]# tcpdump -c 2 -n -i eth0 src host 50.7.172.170
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
11:37:24.085995 IP 50.7.172.170.http > 80.78.99.145.61173: Flags [.], seq 4233513459:4233519299, ack 3468385182, win 18428, length 5840
11:37:24.085995 IP 50.7.172.170.http > 46.228.104.252.59290: Flags [.], seq 1248194336:1248201496, ack 2094696992, win 16, length 7160
2 packets captured

Наверное надо фрибсд ставить, да? Там таких дефектов нет?
koka koka 21.03.201314:37 ответить ссылка 0.0
Толсто. Хотя хрен поймёт, я в детали ядра линукса не лез. Как-то странно видеть tcpdump length 7160 с MTU 1500 на интерфейсе, разве что если у тебя там не что-то в духе vmware или дедика на xen, там это ничего не значит из-за переходников.
Ну и баги в pcap, TSO, итд. Но лично я их никогда не видел на бсд и линухе.
Так что же мне делать?
koka koka 21.03.201314:51 ответить ссылка 0.0
Снять штаны и бегать.
думаешь это поможет уменьшить размер пакета до стандартных 1500 байт?
koka koka 21.03.201314:58 ответить ссылка 0.0
А с чего ты взял что он не 1500? Ты ж ламер. Для проверки берут сквозной тестер(у меня для такого Fluke) да втыкаются. А что ты видишь - может значить всё что угодно даже из не только вариантов выше.
продолжай жечь!
koka koka 21.03.201315:22 ответить ссылка 0.0
уныло
koka koka 21.03.201315:30 ответить ссылка 0.0
Расскажи лучше про хай лоад. Это у тебя смешнее получается =)
koka koka 21.03.201315:36 ответить ссылка 0.0
Этот hiload ничего общего с hiload который появился в 2011 что ли не имеет. А так - да хоть обсмейся, это работает, а больше меня ничего не... волнует.
неужто такой крупный специалист ни разу не сталкивался с этой проблемой?
koka koka 21.03.201314:53 ответить ссылка 0.0
А где ты видишь проблему?
ну ты же писал выше, что полный пиздец. У меня куча косяков и я нуб
koka koka 21.03.201314:57 ответить ссылка 0.0
Ну да, но не тут. Я даже писал что делать, не жопой просто читать надо. Узнать что больше всех даёт IRQ благо в линухе это в топе видно сразу, проверить на сетевую. Указать полные характеристики железа, а так даже модель сетевой не установить чтобы проверить хотя бы гуглом TSO(опять же, у меня оно корректно работает и дампится, но это не значит что у тебя), сбросить все sysctl tcpvr4 wmem rmem на дефолт, установить апачу и nginx sendbuf 8192/16384(подобрать), recvbuf 8192, в апаче можно вообще до 32к закрутить ибо local-local если через 127.0.0.1 сделан бэк, попробовать заюзать accept filters, в nginx, уменьшить local time_wait раза в три для фронт-бэка, обязательно настроить ngx_http_limit_req_module экспериментально в районе 10/ip/sec без keepalive, подключить xcache profiler на часик(на время работы будет СТРАШНО тормозить) и посмотреть результат, вычистить код.
ладно, не буду больше мучать тебя =). Спасибо за развлечение. Таких редкостных мудаков, как ты, я давно не видел =).
koka koka 21.03.201315:09 ответить ссылка 0.0
Ну вот тебе и пояснение почему ты ламер.
Dr_Quake Dr_Quake 21.03.201315:13 ответить ссылка -0.9
P.S. И http keepalive что ли не стоит?
а, ещё дай ссылку на свои сайты. Хочется посмотреть как должны правильно работать сервера.
koka koka 21.03.201313:45 ответить ссылка 0.0
В смысле? Я забил давно и только рабочие делаю сейчас из веба. А так old-games тот же тащил из НАГРУЖЕННОГО, вытащил - надоело, правда сейчас там всё по другому, торренты я попутно сделал. Но вообще они там деградируют потихоньку, ещё система кэша была, но похоже снесли т.к. "неудобно делать рекламу на ajax фреймах".
old-games - это вот этот http://www.old-games.ru/ высоконагруженный проект с посещалкой 7k уников в день?
koka koka 21.03.201313:57 ответить ссылка 0.0
Нет, там не уники. Там файлы, много файлов, 80 мегабит из 100 xmit всегда.
фигассе! аж 80 мбит забито! Как ты справлялся с такими огромными нагрузками?
koka koka 21.03.201314:06 ответить ссылка 0.0
Руками блеять. Тогда же и вывел формулу реакция ИЛИ скорость. Растим буфера до упора - получаем ответы по 10 секунд с HTTP, зато все 100 забиты, снижаем - снижается скорость отдачи. Короче говоря тогда торренты и сделали, сейчас там мегабит 20-40 занято ориентировочно, я не в курсе опять же что там сейчас точо ибо послал нахуй SASa, заебал социалки плодить.
круто. Я думаю, чтобы мне выдерживать нагрузки в 80Мбит придётся дата-центр покупать!
koka koka 21.03.201314:18 ответить ссылка 0.0
А тебе и не дадут штатно. ГАРАНТИРОВАННЫЙ канал в сотку стоит.... А так вечерами соседи лезут и падает.

Вообще с кэшом и php opcode cacherом можно много чего забустить даже тут, но бля, eaccelerator то сдох с новым php, а аналогов нету, apc падучий, xcache только как кэш данных нормален и профайлер.
Apache для отдачи статики? Да вы батенька извращенец.
перед апачем ещё два нжынкса стоит
http://joyreactor.cc/post/667902
koka koka 20.03.201316:51 ответить ссылка 0.0
Пардоньте.
И да, FreeBSD "фарева", благо NGINX под него сначала разрабатывался и многие его фичи в линухе не доступны или не запилены. (З.Ы. я не против линуха)
ну надо заметить, что нестандартные kernel-mode фичи делаются обычно под линукс и под фрю их не найти. Это, например, кластерные фс, виртуализации и т.д.
koka koka 20.03.201317:41 ответить ссылка 0.0
Ага, а ещё это всё частяком забрасывается.
Делаются - часто, доделываются, как в России. А использовать такое в production...
Я нихуя не понял, но мне понравилось
Bananza Bananza 20.03.201318:29 ответить ссылка 1.2
+1 =)
хэцнер то еще ДС. Сомневаюсь, что они найдут проблему. Много раз уже общался с ними по этому поводу.
Реально их заставить поменять винт когда SMART начинает показывать критичные показатели как pre-fail или если появляются ошибки, что винт не отвечает.
Еще, если они все таки предложат вариант замены то лучше чуть-чуть доплатить (кажись 10 евро) и поставить гарантировано новый винт. по умолчанию они предлагают поставить бу винт с менне 700 часов работы или refurbished. который показывает по SMART пару часов работы но такой винт не протянет и месяц снова появятся лаги.
krumm krumm 20.03.201323:58 ответить ссылка 0.0
ну винты меня не сильно смущают. Если скажут, что с сервером всё ок - скажу чтоб дальше тестили, пока не станет не ок =). Он падал раз в пару дней. Так что за 4ре прогона теста у них найдётся ошибка =)
koka koka 21.03.201300:02 ответить ссылка 0.0
Что за железо то ответишь наконец? Может там можно по IPMI снять всё в момент зависания или вообще RMM стоит.
Удачи! еще как вариант настрой netconsole на соседний сервер. может он в панику падает и не успевает в лог записать
krumm krumm 21.03.201300:08 ответить ссылка 0.0
да, сказали ничего не нашли. Но обновили биос - может из-за этого было. Ладно, погоняю свои тесты...
koka koka 21.03.201310:08 ответить ссылка 0.0
сервак ещё раз завис. После недолгой переписки и даже без матов с моей стороны они заменили его полностью.
koka koka 27.03.201311:15 ответить ссылка 0.0
А кто найдёт? Я знаю единственный способ - гонять WRITE RANDOM на весь HDD, это часов 20 на 500 ГБ и забирать надо, если железо арендовано - ещё и не дадут.
Костян, чем все кончилось ?
Zubo Zubo 21.03.201319:45 ответить ссылка 0.0
ну сервак, который падал - сейчас стресс-тестирую. Картинки пока крутятся на другом сервере. Нашёл более-менее стабильное и быстрое решение для кластерной фс. Буду пробывать его поставить =)
koka koka 21.03.201323:04 ответить ссылка 0.0
Может я не в теме, но нах тебе апач? на моей практике перевод с апача на php-cgi снижало нагрузку на ояебусколько.
переход со связки nginx+apache на nginx+php-cgi, или переход с чистого апача на nginx+php-cgi снижало нагрузку?
koka koka 22.03.201313:43 ответить ссылка 0.0
apache -> nginx(static)+apache(dynamic) -> nginx(static)+php-cgi(dynamic)
каждый раз нагрузка снижалась.
на первом переходе нагрузка сильно снижается, да.

На второй - удобство сильно ухудшается, а резульатат - или небольшой, или вообще нет. В своё время находил бенчмарки - там они идут практически вровень и производительность больше зависит от настроек. Единственное - апач немного больше жрёт памяти. Что-то вроде 15Мб больше на процесс. Но это копейки, по сравнению с остальными тратами.
koka koka 22.03.201314:03 ответить ссылка 0.0
ну по la довольно ощутимо было 17+ -> 7-9 -> 1-2
при этом да, скорость отдачи между 2 и 3 вариантом была не особо значительная, но по нагрузке довольно прилично
бенчмарки говорят о другом =). Разницы в правильно настроенных апаче и fastcgi по сути нет.
Подозреваю, что кроме перехода апач на fastcgi, было что-то ещё. Или настройки в апаче были плохие.
koka koka 22.03.201314:20 ответить ссылка 0.0
сессии в мемкеш выкинул :) больше никаких существенных изменений не было.
в моем случае нагрузка реально упала, не знаю как у тебя обстоят дела. да и бенчмарки-бенчмарками, а я предпочитаю пробовать для каждого проекта что лучше.
попробуй взять в тест на том же хетзнере серв, настроить на нем nginx+fcgi, и на балансере закинуть какую-то большую подсеть пользователей на него как на постоянный бекэнд и посмотреть нагрузку. если нагрузка слабая а все работает так-же, то закинуть еще пользователей, и так до prefail. вот это и будет твой оптимальный конфиг и бенчмарк именно для твоего проекта.
хотя со своим в чужой монастырь :)
если не верить бенчмаркам - то можно только и делать, что тестировать.
"а вдруг редис в 10 раз быстрее мемкэшед?"
"а вдруг ядро 3.5 в 10 раз быстрее 2.6?"
А потом ещё решать вопросы вида "я перешёл на Х и теперь всё падает раз в день. Что делать?".
koka koka 22.03.201317:10 ответить ссылка 0.0
согласись, бенчмарки сделанные кем-то на каком-то железе, с неизвестно каким кодом совсем не будут соответствовать другому железу с другим кодом, следовательно для второго, третьего и далее частных случаев они не будут отражать реальное положение вещей :)
не соглашусь. Понятно, что реальная скорость отличается от бенчмарковой. Но средний уровень останется. Если бенчмарки отличаются на 10% - то можно считать два решения одинаковыми. Железо, реальные задачи и т.д. сведут эти 10% к нулю. Тестировать имеет смысл то, где разница хотя бы в 2 раза.

А ещё лучше - смотреть где появляется оверхед и какой. Из таймингов видно, что на апаче оверхэд минимальный. Вместо тестирования fastcgi, лучше потратить время на оптимизацию запросов к БД. Даже если оверхэд от апача снизится до нуля - это даст меньший прирост скорости, чем избавится от нескольких запросов на каждой странице.
koka koka 22.03.201317:39 ответить ссылка 0.0
Не согласен с твоим первым абзацем, но дискутировать не буду, у каждого свои подходы :)

Оптимизация кода вещь полезная и нужная, но не всегда возможная.
да вообще, всегда возможная =). Просто надо знать, что оптимизировать. А для этого надо собирать статистику и профилировать =)
koka koka 22.03.201317:48 ответить ссылка 0.0
Только зарегистрированные и активированные пользователи могут добавлять комментарии.
Похожие темы

Похожие посты
3 3 3 3 lS 3 3 3 S 3 3 3 Ü3333gg 3 3 3 3 3 3 3 3
1
S 3 3 3 3 g 3 3 3 3 3 3 3 3 ¡ 3 s i S 3 g g 3 3 3 3 3 3 3 3 !
!=Ë Si I I I 1
servl2: CPU Loads (lh)
3 3 3 3 3 ^ 3 3 3 3 3 3 3-ÜÜ 3 3 3 3 3 3 3 3 3 3 3
I
Sa Si I I 11 1
SS 3 3 3 1 3 3 3 S S 3 3 3 ^ i i 1 i 3 3 3 3 S 3 3 3 3 3 3 S0
I	i
:=11
подробнее»

админские истории разное ceph и все все все openstack swift

3 3 3 3 lS 3 3 3 S 3 3 3 Ü3333gg 3 3 3 3 3 3 3 3 1 S 3 3 3 3 g 3 3 3 3 3 3 3 3 ¡ 3 s i S 3 g g 3 3 3 3 3 3 3 3 ! !=Ë Si I I I 1 servl2: CPU Loads (lh) 3 3 3 3 3 ^ 3 3 3 3 3 3 3-ÜÜ 3 3 3 3 3 3 3 3 3 3 3 I Sa Si I I 11 1 SS 3 3 3 1 3 3 3 S S 3 3 3 ^ i i 1 i 3 3 3 3 S 3 3 3 3 3 3 S0 I i :=11