И еще компьютерный вопрос
Jul. 25th, 2012 03:29 pmВыяснилось что нестабильность работы vds-ки связана с тем, что всю память сжирает нейм-сервер.
Зажал ему все что можно
Всё равно откуда-то берется 127Мб virtual, 35Мб RSS. (это из 256Мб virtual, а там еще jabberd, apache. postfix и postgrey). Как бы его еще придушить раз в десять? Может tinydns какой поставить?
От DNS сервера требуется
1. Поддержка нескольких доменов в качестве первичного NS. в обще сложности пара десятков записей.
2. Поддержка одной зоны dyndns из одной записи кроме SOA, апдейтящейся с одного хоста с одним ключом
3. Обслуживание потребностей локальных клиентов (в первую очередь postfix и postgrey, apache и jabber вроде куда меньший dns-траффик создают)
4. Обслуживание в качестве форвардера потребностей квартирной сетки (примерно 3 рабочих места).
Зажал ему все что можно
max-cache-size 2097152;
listen-on-v6 { none; };
recursive-clients 50;
tcp-clients 30;
Всё равно откуда-то берется 127Мб virtual, 35Мб RSS. (это из 256Мб virtual, а там еще jabberd, apache. postfix и postgrey). Как бы его еще придушить раз в десять? Может tinydns какой поставить?
От DNS сервера требуется
1. Поддержка нескольких доменов в качестве первичного NS. в обще сложности пара десятков записей.
2. Поддержка одной зоны dyndns из одной записи кроме SOA, апдейтящейся с одного хоста с одним ключом
3. Обслуживание потребностей локальных клиентов (в первую очередь postfix и postgrey, apache и jabber вроде куда меньший dns-траффик создают)
4. Обслуживание в качестве форвардера потребностей квартирной сетки (примерно 3 рабочих места).
no subject
Date: 2012-07-25 11:42 am (UTC)Скорее всего этот virtual идёт от умножения на количество threads, я б убивал умников, которые в unix лимитируют vss и запрещают оверкоммит.
no subject
Date: 2012-07-25 11:46 am (UTC)no subject
Date: 2012-07-25 12:00 pm (UTC)Разница между -n 1 и -n 8 это 30MB и 100MB, соответственно.
no subject
Date: 2012-07-25 11:52 am (UTC)no subject
Date: 2012-07-25 12:04 pm (UTC)no subject
Date: 2012-07-25 12:15 pm (UTC)no subject
Date: 2012-07-25 12:27 pm (UTC)no subject
Date: 2012-07-25 06:47 pm (UTC)no subject
Date: 2012-07-25 07:27 pm (UTC)no subject
Date: 2012-07-25 12:31 pm (UTC)1 crond 1 proftpd 1 saslauthd 1 tinyproxy 2 sendmail 10 sshd 31 named 36 ts3server_linux 75 memcached 169 mysqld 344 httpd 671 totalno subject
Date: 2012-07-25 12:40 pm (UTC)А стэк у отдельных процессов с отдельным адресным пространством растет on demand, и на него ничего не резервируется.
У апача проблемы начинаются только если в него интерпретатор скриптового языка, который не дружит с COW вставить. Вот если туда mod_php или mod_perl вкрутить, тогда будет пухнуть.
no subject
Date: 2012-07-25 12:41 pm (UTC)no subject
Date: 2012-07-25 01:05 pm (UTC)А на данной VDS-ке у меня вообще никакой динамики нет.
no subject
Date: 2012-07-25 01:41 pm (UTC)Если вы используете Debian, Ubuntu или ещё какой бинарный дистрибутив — то установка libapache2-mod-php5 выносит worker, event или ещё какой MPM вперёд ногами и ставит на его место prefork MPM.
При обработке статических файлов prefork жрёт память и тормозит ужасно, примерно так старый недобрый Apache 1.3; а вот worker работает весьма и весьма шустро. И достаточно надёжно, чтобы многие годы быть MPM по умолчанию.
mod_php может работать с worker только при одном условии: если собрать thread-safe PHP и все его модули. Это трудоёмко и ненадёжно, поэтому в бинарных дистрибутивах этот пакет отмечен как конфликтующий с worker MPM.
Лично я уже много лет юзаю связку mod_fcgid + mod_suexec + FastCGI-версию PHP. Начальная настройка немного громоздкая и неочевидная, но результатом я доволен.
no subject
Date: 2012-07-25 01:49 pm (UTC)Вот fcgi это, видимо, наиболее разумное решение для преимущественно динамического контента. Ну а mod_suexec - это специфическая фишка для shared хостинга, которой следует избегать если все содержимое машины, хотя бы виртуальной, принадлежит одному административному домену.
no subject
Date: 2012-07-25 06:41 pm (UTC)no subject
Date: 2012-07-25 05:56 pm (UTC)Решение - переползать на хостинг с Xen/KVM. Из принципа к нам не зову, чтобы быть объективным. Так что к любому другому, у которого гипервизор, а не контейнеры.
ЗЫ Если хостера не любишь, запусти в цикле mount / / -o bind.
no subject
Date: 2012-07-25 06:33 pm (UTC)no subject
Date: 2012-07-25 06:41 pm (UTC)Насчёт оверселла - в нём нет ничего плохого, просто используются неиспользующиеся ресурсы. Драма начинается тогда, когда все клиенты вместе пытаются использовать ресурсов больше, чем есть на сервере. Чаще всего это заметно на диске, иногда - на прерываниях (читай, сети), реже всего на процессоре, потому что это легче всего отслеживать и лимитировать.
ЗЫ У нас на зене оверселлинг доходит до 1:80 (то есть 80 виртуалок с 8 ядрами на хосте, на котором и так 8 ядер). Другое дело, что мы деньги только за реальное время процессора берём, так что у нас есть явный стимул обеспечивать людям максимум того, что они могут сожрать.
no subject
Date: 2012-07-25 07:00 pm (UTC)OOM на хосте можно избежать в 99% случаев, если держать сумму privvmpages всех VPS меньше ram+swap хоста.
Как я себе представляю (очень смутно), драму можно держать под контролем, если мониторить историю потребления ресурсов и мигрировать мирные VPS в одну большую кучу, а недобрых людей - на отдельные
сервератарифы, как это происходит на shared хостинге.no subject
Date: 2012-07-25 07:16 pm (UTC)Плюс у нас нет "мирных" и "не мирных" клиентов. Пока деньги платит - все ресурсы, какие съест - его.
В зене быстрая миграция (около 10-40с) и машины просто перетасовываются так, чтобы у всех всё было.
В зене домены очень "замкнуты в себе" (т.е. легко можно видеть сколько каких ресурсов съедено), а в openvz некоторые ресусры крайне сложно посчитать. Например, кто насилует и засирает файловый кеш хоста, или кто делает много sync'нутых IO. Про тонкие вещи, как энтропия и т.д. говорить нечего.
ЗЫ Моя мечта - дорасти до уровня kernel developer и таки написать патч в ядро, который в ответ на запрос очередной памяти процесса не выкинет oom/ENOMEM, а пойдёт и попросит памяти у гипервизора.
no subject
Date: 2012-07-25 06:48 pm (UTC)no subject
Date: 2012-07-25 07:16 pm (UTC)no subject
Date: 2012-07-27 09:27 am (UTC)no subject
Date: 2012-07-27 09:40 am (UTC)no subject
Date: 2012-07-27 12:20 pm (UTC)no subject
Date: 2012-07-27 01:34 pm (UTC)no subject
Date: 2012-07-27 01:47 pm (UTC)Увы...
Date: 2012-07-27 09:24 am (UTC)Да и 128МБайт virtual -- это весьма виртуально, даже и не своп часто. Вот RSS, да... Причём bind ставить приходится и на сервера, и на ноуты, ибо провайдерский днс обычно тормозит и работает плохо.
BTW bind9 из дебиана (lenny, bind9 1:9.5.1) всего-то ~60М virtual и ~8М RSS. На другой машине 3.5М и 1.2М (ого! но etch, нет bind9, просто bind 8.4.7), на третьей 70M и 22M (wheezy), на четвёртой 72М и 29M (squeeze).
Re: Увы...
Date: 2012-07-27 09:51 am (UTC)Как выяснилось уже у бинда virtual, и в мешьшей степени RSS со страшной силой растут с ростом количества процессоров. А там их 8.