[devel] I: tuning packages.altlinux.org

Igor Zubkov igor.zubkov на gmail.com
Пн Сен 17 20:35:10 MSK 2012


2012/8/4 Igor Zubkov <igor.zubkov at gmail.com>:
> 2012/7/19 Igor Zubkov <igor.zubkov at gmail.com>:
>> Hi,
>>
>> Я потюнил packages.altlinux.org. Так как там стало:
>> 1) Больше CPU
>> 2) После обновлени ruby 1.9.3p0 -> ruby 1.9.3p194 -- больше памяти
>> (она стала меньше течь)
>>
>> то я увеличил число воркеров у nginx с 4 на 8 и у unicron с 4 на 8.
>> Должно теперь обслуживать больше запросов за раз.
>>
>> Надеюсь что по скорости оно не стало медленнее. По поводу проблем со
>> скоростью (или других сайд-эффектов) писать в этот тред.
>>
>> Спасибо!
>
> И ещё раз. Я поднял количество воркеров у nginx до 16. Так же, я
> включил threadsafe режим у рельс. В общем, это всё дало:
> 1) 500 одновременных клиентов которые могут забирать статику через nginx.
> 2) 100 одновременных клиентов которые могут забирать динамику через
> unicorn -> nginx.
>
> Как по мне, так это очень хороший результат. Это даже больше чем я сам ожидал.
>
> Единственный пост-эффект от которого я пока не избавился, это утекание
> памяти. ruby/rails утекает до размеров почти всей памяти дня за
> три-четыре. Самый простой способ это пофиксить, раз в сутки
> перезапускать приложение. Но это решение мне не нравится. В текущий
> момент, я его перезапускаю (когда делаю deploy) раз в пару дней, пока
> этого хватает.
>
> Может кто расскажет чем и как можно в linux бороться с утечками памяти? man что?

Ну или ещё вариант. Смена unicorn на puma. На сайте пумы приводится
сравнение по потреблению памяти. Unicorn -- 1076 mb vs puma 78mb. Но я
пока этого не пробовал. И ближайшее время не собираюсь уже.

Я добавил в крон перезапуск приложения каждый час (вместе со сфинксом)
и теперь могу сказать что всё стабильно. За час оно не успевает утечь
больше чем там есть памяти.

Ещё я настроил мониторинг всего и вся через monit. Так что, если
что-то даже и упадёт, monit всё равно поднимет очень быстро. Время
мониторинга там выставлено в 30 секунд. Мониторится: само rails
приложение, sphinx (который отвечает за поиск), memcached, redis,
nginx. Единственное что пока мониторится не правильно, это сколько
памяти ест unicorn. Я как-то сходу не разобрался с тем как через monit
мониторить процессы которые форкает unicorn. С этим надо ещё
разобратся. Но в общем случае, всё сейчас работает стабильнее чем пару
месяцев назад.

На самом деле, всё это было сделано раньше, а сейчас просто время
написать об этом. Может это кому-то спасёт время в будущем. :)

-- 
Igor Zubkov
http://hi.im/ice


Подробная информация о списке рассылки Devel