vitus_wagner: My photo 2005 (Default)
[personal profile] vitus_wagner
Выяснилось что нестабильность работы vds-ки связана с тем, что всю память сжирает нейм-сервер.
Зажал ему все что можно

 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 рабочих места).

Date: 2012-07-25 11:42 am (UTC)
From: [identity profile] paracloud.livejournal.com
Посмотри сколько там cpu core и попробуй лимитировать worker threads (ключ -n 1).
Скорее всего этот virtual идёт от умножения на количество threads, я б убивал умников, которые в unix лимитируют vss и запрещают оверкоммит.

Date: 2012-07-25 12:00 pm (UTC)
From: [identity profile] paracloud.livejournal.com
А сразу после старта VSIZE сколько?
Разница между -n 1 и -n 8 это 30MB и 100MB, соответственно.

Date: 2012-07-25 12:04 pm (UTC)
From: [identity profile] paracloud.livejournal.com
Вообще жизнь на vds (что это - openvz?) с лимитом virtual 256MB печальна и удивительна. Там что, действительно барьер в 256MB без overcommit?

Date: 2012-07-25 12:27 pm (UTC)
From: [identity profile] paracloud.livejournal.com
Проблема будет с большинством многопоточных приложений. В linux стоит ~10MB per thread stack по умолчанию. Вот с этим приходится бороться - либо уменьшать ulimit -s, либо количество потоков.

Date: 2012-07-25 07:27 pm (UTC)
From: [identity profile] paracloud.livejournal.com
Значит, жиреет линукс, жиреет ;)

Date: 2012-07-25 12:31 pm (UTC)
From: [identity profile] paracloud.livejournal.com
Кстати, а как ты придушил apache? Он же вообще по умолчанию forked, то есть 10 worker == 10x vss. На моём vds он самый толстый (vsize in mb):

       1 crond
       1 proftpd
       1 saslauthd
       1 tinyproxy
       2 sendmail
      10 sshd
      31 named
      36 ts3server_linux
      75 memcached
     169 mysqld
     344 httpd
     671 total


Date: 2012-07-25 12:41 pm (UTC)
From: [identity profile] paracloud.livejournal.com
Ну вот у меня exactly mod_php, душил я его, душил..

Date: 2012-07-25 01:41 pm (UTC)
kastaneda: (Default)
From: [personal profile] kastaneda
Тут дело даже не в mod_php, а в prefork MPM.

Если вы используете 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. Начальная настройка немного громоздкая и неочевидная, но результатом я доволен.

Date: 2012-07-25 06:41 pm (UTC)
From: [personal profile] sigprof
Вариант mod_fcgid + php-fcgi тоже не идеален — с ним не работают как следует APC/eaccelerator/xcache (вместо общего кеша получается свой экземпляр у каждого процесса php-cgi). Если нужен работающий общий кеш, приходится использовать mod_fastcgi и либо управление процессами php через PHP_FCGI_CHILDREN, либо запускаемый отдельно php-fpm.

Date: 2012-07-25 05:56 pm (UTC)
From: [identity profile] amarao_san.livejournal.com
Проблема в том, что VDS используют openvz. Openvz используют для лимитирования не используемую память, а выделенную (т.е. эквивалентно серверу с выключенным оверкоммитом).

Решение - переползать на хостинг с Xen/KVM. Из принципа к нам не зову, чтобы быть объективным. Так что к любому другому, у которого гипервизор, а не контейнеры.

ЗЫ Если хостера не любишь, запусти в цикле mount / / -o bind.

Date: 2012-07-25 06:33 pm (UTC)
From: [identity profile] paracloud.livejournal.com
Немножко не так. Проблема в том, что хостеры, использующие openvz, используют для лимитирования не используемую память, а выделенную. Другая проблема, что говнохостеры с openvz зверски оверселлят ресурсы ноды, в частности node vm (ram+swap). Xen by default этого не поощряет, поэтому в среднем хостеры с xen выглядят дартаньянами. Just imho, /cheers.

Date: 2012-07-25 06:41 pm (UTC)
From: [identity profile] amarao_san.livejournal.com
Если аккаунтить по выделенной, то будет слишком много паразитов. Плюс, любой недобрый человек сможет довести сервер до OOM'а (нахапав много памяти с помощью brk(), а потом внезапно записав туда).

Насчёт оверселла - в нём нет ничего плохого, просто используются неиспользующиеся ресурсы. Драма начинается тогда, когда все клиенты вместе пытаются использовать ресурсов больше, чем есть на сервере. Чаще всего это заметно на диске, иногда - на прерываниях (читай, сети), реже всего на процессоре, потому что это легче всего отслеживать и лимитировать.

ЗЫ У нас на зене оверселлинг доходит до 1:80 (то есть 80 виртуалок с 8 ядрами на хосте, на котором и так 8 ядер). Другое дело, что мы деньги только за реальное время процессора берём, так что у нас есть явный стимул обеспечивать людям максимум того, что они могут сожрать.

Date: 2012-07-25 07:00 pm (UTC)
From: [identity profile] paracloud.livejournal.com
Вот именно, с процессором проще всего, поэтому 1:80 не фокус - если, конечно, все клиенты не seti@hoster считают, ну так у вас они разорятся ^.^ А по памяти какой оверкоммит у вас?

OOM на хосте можно избежать в 99% случаев, если держать сумму privvmpages всех VPS меньше ram+swap хоста.

Как я себе представляю (очень смутно), драму можно держать под контролем, если мониторить историю потребления ресурсов и мигрировать мирные VPS в одну большую кучу, а недобрых людей - на отдельные сервера тарифы, как это происходит на shared хостинге.

Date: 2012-07-25 07:16 pm (UTC)
From: [identity profile] amarao_san.livejournal.com
У нас не оверкоммит, у нас "memory-on-demand". В силу организации памяти в зене, страница памяти всегда либо принадлежит домену, либо не принадлежит (за вычетом нескольких страниц ring buffer'ов для работы драйверов, которые общие между dom0 и domU). Так что у нас модель хитрее - у клиента запущен рапортующий нам /proc/meminfo агент, на хосте работает сервер, который по этим циферкам вычисляет, нужно добавить памяти или нет. Так что машина с 500Мб по мере форка процессов может спокойно дорасти до, например, 4Гб.

Плюс у нас нет "мирных" и "не мирных" клиентов. Пока деньги платит - все ресурсы, какие съест - его.

В зене быстрая миграция (около 10-40с) и машины просто перетасовываются так, чтобы у всех всё было.

В зене домены очень "замкнуты в себе" (т.е. легко можно видеть сколько каких ресурсов съедено), а в openvz некоторые ресусры крайне сложно посчитать. Например, кто насилует и засирает файловый кеш хоста, или кто делает много sync'нутых IO. Про тонкие вещи, как энтропия и т.д. говорить нечего.

ЗЫ Моя мечта - дорасти до уровня kernel developer и таки написать патч в ядро, который в ответ на запрос очередной памяти процесса не выкинет oom/ENOMEM, а пойдёт и попросит памяти у гипервизора.

Date: 2012-07-25 07:16 pm (UTC)
From: [identity profile] amarao_san.livejournal.com
оки, хорошо.

Date: 2012-07-27 09:27 am (UTC)
ext_946247: (Default)
From: [identity profile] https://www.google.com/accounts/o8/id?id=AItOawkviYqiu1vXygTGIuMOuEm27XL5brOdUTQ
Кстати да. OpenVZ страшное зло, Xen гораздо лучше и в указанных лимитах жить вполне можно. Хотя таки да, иногда свопит и тормозит.

Date: 2012-07-27 09:40 am (UTC)
From: [identity profile] amarao-san.livejournal.com
Зен не свопит - он не умеет. Свопится гостевая машина.

Date: 2012-07-27 12:20 pm (UTC)
phd_ru: (Default)
From: [personal profile] phd_ru
К вам — это куда? SpaceWeb слегка поднадоел…

Date: 2012-07-27 01:34 pm (UTC)
From: [identity profile] amarao-san.livejournal.com
http://selectel.ru/services/cloud/

Date: 2012-07-27 01:47 pm (UTC)
phd_ru: (Default)
From: [personal profile] phd_ru
Спасибо. Интересный набор услуг и цен.

Увы...

Date: 2012-07-27 09:24 am (UTC)
ext_946247: (Default)
From: [identity profile] https://www.google.com/accounts/o8/id?id=AItOawkviYqiu1vXygTGIuMOuEm27XL5brOdUTQ
Сколько не мучался, вернулся на bind9. pdnsd особенно не рекомендую. Увы, нет другого вменяемого неймсервера.
Да и 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).

Profile

vitus_wagner: My photo 2005 (Default)
vitus_wagner

January 2026

S M T W T F S
     1 2 3
4 56789 10
11 121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 13th, 2026 12:48 pm
Powered by Dreamwidth Studios