stepan007

Рейтинг
84
Регистрация
24.06.2007
myhand:
Что-то вы накопипастили не полностью/не то. Проверьте.

Извиняюсь, теперь работает без ошибок. Но сейчас в свопе ничего нет, перезапустил mysqld.

Выставил key_buffer_size в 4ГБ (-2ГБ, т.к. если и свопило, то до 2ГБ в основном), а также закомментировал max_heap_table_size = 256M и tmp_table_size = 256M (хотя сам не знаю зачем). Отключил лог медленных запросов. Еще уменьшил в httpd maxrequestperchild, было 10240, сейчас 250 - в итоге график в munin стал нормальным, может память именно в связке с eaccelerator утекает непонятно куда, и раньше оно долго держало процесс открытым, а сейчас его быстро закрывает по этому лимиту.

График прикрепил.

myhand:

Может backlog на бакенде переполнился, потому соединения не происходит. Каков конфиг апача?

Конфиг апача тоже прикрепил. Сейчас в среднем больше 200 free slots, а еще idle slots.

Raistlin:
Нет. Далеко не всегда так. Хотя в вашем случае, скорее всего, он тоже не может быть вытеснен, вместе с таблицами MySQL (вообще БД как правило в кеш влетают за здорово живешь и без всяких ухищрений).

Сейчас 19ГБ cached, как раз если будет все держаться в кеше и не будет лезть в swap - будет все нормально. Сейчас la 1-1,5 - давно я такого не видел.

Raistlin:
Невозможно. csf блочит на уровне iptables, т.е. в логах вы эти айпишники не увидите после блока.

Да, тут как-то не подумал. Ну тогда даже не знаю, на что грешить.

txt httpd.txt
png httpdram.png
marts:
В смысле? Не хотят продлять?

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

Zegaldis:
Что значит "дадут"? В канцелярском киоске в предбаннике налоговой обычно за 10-15 гривен всё это продают, а уж чтоб бесплатно раздавали - впервые такое за много-много лет слышу 😂

Неправильно выразился, конечно покупать надо и врядли за 15грн. Только ее ж скрепить должны, а так - это не документ, а просто кучка бумаги:)

myhand:
Попробуйте так:

Swap usage[kB] Process[PID]

============================

find: missing argument to `-printf'

./proc_swap.sh: line 22: fg: no job control

============================

Overall swap used: 0 kB

Что-то я вообще не понял, в той строке выводится только "=======".

Прошу также подсказать по nginx - ссылка. Тестировал siege на разные урлы, все http ответы 200 ok. Возможно, это блокируются плохие айпишники - стоит csf и в нем включено получение и фильтрация IP по feeds.dshield.org/block.txt, spamhaus.org/drop/drop.lasso и cymru.com/Documents/bogon-bn-agg.txt.

И еще такой вопрос есть, у меня временные файлы mysql создаются в tmpfs /dev/shm. Соответственно, строчки max_heap_table_size = 256M и tmp_table_size = 256M можно вообще убрать?

marts:
А время то идет. Кто уже перешел на ЕН и работает записывает в книгу Ф10 вебмани и чеки? :)

Завтра думаю звонить инспектору, узнавать что там с продлением ЕН. А книги нет, наверное ее дадут с новым свидетельством (вообще не знаю, ну по идеи так должно быть). Так что доходы пока заносить просто некуда:)

netwind,

ну по идеи кеш акселератора не может быть вытеснен - к нему же постоянно должны идти обращения. Также установлен shm_ttl и shm_prune_period и еще tmpwatch есть, тоже чистит.

Почему решил использовать tmpfs, нашел статьи где рекомендуют все такое (php сессии, временные файлы mysql, кеши php акселератора) засунуть именно туда. Насчет mysql-slow, решил его сюда положить, чтобы уменьшить нагрузку на hdd, хотя думаю его вообще выключить (также в /dev/null отправляю логи exim, с недавнего времени отключил логи httpd).

Почему не сделал через shm - апач не стартует, если вписать shm_size более 1024МБ (1ГБ очень быстро заполнялся и я думал, что надо гораздо больше). Но сейчас стоит 4096МБ, хотя используется где-то до 1,5ГБ.

По поводу кешей, Вы уже советовали уменьшить key_buffer_size, может еще что-то уменьшу в my.cnf - попробовать можно, а там видно будет. Ну это уже ночью или завтра, т.к. бекап еще идет.

myhand,

Из-под рута есть доступ во все эти smaps, и скрипт запускаю также из-под рута.

Pilat:
В Debian 6 работает.

Centos 5, отрабатывает без ошибок, показывает "Overall swap used: 0"

Сейчас swap чистил, потихоньку наполняется, всего 180МБ. Попробую как будет 1ГБ например, но по идеи и сейчас должно показывать, какой процесс и сколько занимает места в swap.

---------- Добавлено 22.01.2012 в 23:11 ----------

Уже больше 1ГБ, все равно ничего не показывает.. наверное не работает:(

---------- Добавлено 22.01.2012 в 23:18 ----------

А подскажите еще плиз по нгинксу, в логах полно вот таких записей. По идеи нехватки соединений просто не может быть.

2012/01/23 00:50:38 [error] 2818#0: *28928 connect() failed (111: Connection refused) while connecting to upstream, client: ххх.125.ххх.139, server: , request: "GET / HTTP/1.0", upstream: "http://ххх.73.ххх.42:80/", host: "site.ru", referrer: "http://site.ru/"

Raistlin:
Гм. Прошу прощения, сеанс телепатии не удался, виноват.

Тогда по совету myhand уровнять ionice апач и майскуэль и смотреть... Больше в голову лично мне вряд ли что-то придет.

Про eaccelerator и tmpfs под него писал в 1м сообщении, вроде телепатия тут не нужна:)

Nice и ionice уже уровнял, поигрался с конфигами апача и нгинкса. Также обратно включил своп, без него вроде проблем никаких не было, ну а как включил - 2,5ГБ сгрузило в своп, сервер немного потупил и сейчас все нормально.

Raistlin:
И что вы хотите? Это его кеш. Видимо, вы апач не ребутаете, а релоадите... Иначе кеш должен был быть очищен, т.к. модуль выгружается. Правьте настройки и будет вам счастье.

Кеш eaccelerator идет на tmpfs /var/tmp и там же mysql-slow.log и выделено всего 6ГБ, из которых используется не более 30%. По идеи, эти данные занимать более 2ГБ в озу просто не могут.

По поводу рестарта апача, 16ГБ cached до рестарта и 14,5ГБ после, команда service httpd restart.

netwind:
не должно, если найти баланс.

Ясно, ну как бекап закончится - тогда попробую поиграться с настройками, т.к. iowait сейчас итак большой, а рестарт мускула точно добьет.

netwind:

Судя по графику CPU usage очень большая часть usr трансформировалась в nice. Может быть стоит приоритет mysql уравнять с остальными программами обслуживающими сайт. Ведь mysql тоже формирует странички сайта.

Поставил нгинкс, апач и мускул в высокоприоритетные приложения, график не меняется - юзер 20%, найс 180%. Правда в стандарте у spri кронзадание раз в 45минут (если не ошибаюсь), я поставил раз в 2 минуты - но не думаю, что это важно - т.к. он все равно просто чекает все процессы и почти всегда old и new priority равны. А вот когда бекапинг начинает делаться 45 минут слишком большой отрезок времени.

netwind:
и где логика? размер индексов никак не характеризует частоту их использования.
перечитай еще раз мое сообщение.
вероятно, в этой конфигурации ОС считает индексы в памяти менее приоритетными чем остальное и вытесняет их в своп.

Уменьшить key_buffer_size придется, если хочется чтобы своп не использовался.

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

netwind:

зачем ВСЕМ ?
По задумке, nice и ionice нужно выставлять процессу бекапа и другим задачам, время выполнения которых не критично для нормальной работы сайта. До некоторой степени это даже помогает.

Ну не для всех, но он делается и для httpd, nginx, mysql (так в статье вычитал, та и в начальных конфигах spri также - апач имеет высокий приоритет, мускул - средний). Для cp, rm, tar, gzip, rsync и ряда других nice 19 и ionice 7, для httpd и nginx - 2 и 1, для mysql - 7 и 4.

---------- Добавлено 22.01.2012 в 16:34 ----------

Сейчас вообще отключил своп, вроде памяти всем хватает. Вообще способ наверное варварский, но вроде все нормально. Сейчас и бекап идет, но работает как должно - когда остается свободной памяти меньше 200МБ, сгружает часть кеша и свободной становится около 500МБ.

Всего: 284