Т.е. все ставят на серверах Fastvps/Hetzner RAID 1?
А кто-то ставит RAID 10 на двух ssd дисках?
При возможности выбора ДЦ (Нюрнберг и в Фалькенштайн) - какой предпочтительнее (лучше, стабильнее, канал на Россию и т.д.)?
А разумен предлагаемый программный RAID 1 на ssd дисках, предлагаемый во всех тарифных планах? По логике, в зеркальном рейде ssd-диски примерно одновременно выйдут из стоя.
Тогда алгоритм такой?
1. VPS и запасной сервер циклически делают ежесекундный опрос основного сервера (таймаут 3 секунды).
2. При ошибке (в т.ч. таймаут) запасной сервер делает дополнительную проверку доступности.
3.1. Если ошибка не повторилась - возврат к п.1.
3.2. Если ошибка повторилась - запросить последний статус проверки у VPS:
3.2.1. VPS не вернул ответ: делаем еще одну попытку, и если опять неудачная - предполагаем проблемы с сетью на запасном сервере: сервер не меняем, уведомление на мобильный /если получится, т.к. проблемы с сетью :)/ и возврат к п.1.
3.2.2. VPS вернул ответ, но результат последней проверки "без ошибки" - предполагаем проблемы с каналом между основным и запасным сервером(?): сервер не меняем, уведомление на мобильный и возврат к п.1.
3.2.3. VPS вернул ответ и результат последней проверки "ошибка": ПЕРЕКЛЮЧИТЬ сервер.
Все учел?
http://wiki.hetzner.de/index.php/Failover/ru
Афтепати бомбезный
а какой порог блокировки на выделенном сервере?
Все верно. Причем я не уверен, что эти опции не вылезут где-то другим боком.
Вы имеете ввиду всем задачам, выполняемым по крону, поставить ionice -с3 или другое?
rsync --bwlimit - "ограничивает пропускную способность в КБ/c"
У меня пока не машине нет бакапов. Или где-то еще используется?
Еще, я так понимаю, может подвисать и из-за зеркального рейда.
atop - нагрузка "только запись логов":
PID RDDSK WRDSK WCANCL DSK CMD 1473 12K 78184K 0K 18% flush-9:228907 80K 66728K 0K 16% nginx28908 44K 66572K 0K 16% nginx28905 140K 65696K 0K 16% nginx28906 236K 65560K 0K 16% nginx 473 0K 51396K 0K 12% jbd2/md2-8
Победил следующим путем.
Было:
# cat /proc/sys/vm/swappiness10# cat /proc/sys/vm/dirty_ratio40# cat /proc/sys/vm/dirty_background_ratio2# cat /proc/sys/vm/vfs_cache_pressure1000# cat /sys/block/sda/queue/nr_requests128# cat /sys/block/sdb/queue/nr_requests128# sysctl vm.vfs_cache_pressurevm.vfs_cache_pressure = 1000# cat /proc/sys/vm/swappiness10
При:
# echo 4096 > /sys/block/sda/queue/nr_requests# echo 4096 > /sys/block/sdb/queue/nr_requests# echo 99 > /proc/sys/vm/dirty_ratio# sysctl vm.vfs_cache_pressure=10# sysctl vm.swappiness=100
Особо ничего не изменилось.
dd if=/dev/zero of=/gbfile bs=1M count=6000&
лог доступности сайта, ms:
[2016-03-14 19:26:27] 179: 0 0 44 44 89 [2016-03-14 19:26:40] 10192: 0 0 40 8040 89 (таймаут)[2016-03-14 19:26:49] 7192: 0 0 7057 44 89 [2016-03-14 19:26:53] 178: 0 0 44 44 89
Оставил и добавил:
sysctl vm.dirty_background_ratio=0sysctl vm.dirty_ratio=0
Это помогло. Файл стал создаваться существенно дольше:
9437184000 bytes (9.4 GB) copied, 68.1214 s, 139 MB/s
Но, система почти не подвисает.
при проверке доступности сайта каждые 2 секунды:
dd if=/dev/zero of=/gbfile bs=1M count=6000& -- вообще без тормозов
dd if=/dev/zero of=/gbfile bs=1M count=9000& -- одна проверка с задержкой 1.267s
dd if=/dev/zero of=/gbfile bs=1M count=15000& -- одна проверка с задержкой 3.366s
[2016-03-14 19:41:56] 178: 0 0 44 44 88[2016-03-14 19:42:02] 3366: 0 0 43 3233 88 [2016-03-14 19:42:04] 180: 0 0 45 44 89
Огромное спасибо за советы.
Еще обнаружил проблему.
При более менее активных дисковых операциях, начинает подвисать nginx. Мне кажется, что процесс nginx блокируется при записи лога (лог нужен).
Логи достигают до 10-15 Гбайт в сутки (отключить не могу, но могу уменьшить на 30%).
Вот так выглядит лог проверки доступности сайта (числа - миллисекунды), если запустить на сервере копирование 10ГБ файла.
[time] All time: Dns Connect Send Wait Receive
[2016-03-13 03:09:18] 179: 0 0 44 45 89
[2016-03-13 03:09:20] 189: 0 0 47 44 96
[2016-03-13 03:09:34] 7252: 0 0 43 7007 200
[2016-03-13 03:09:37] 1970: 0 0 46 1831 91
[2016-03-13 03:09:41] 179: 0 0 44 44 89
[2016-03-13 03:09:51] 7770: 0 0 44 7007 718
[2016-03-13 03:09:54] 180: 0 0 45 44 89
[2016-03-13 03:09:56] 165: 0 0 41 41 81
Тоже копирование, но с ionice -c3
[2016-03-13 03:38:03] 178: 0 0 44 44 88
[2016-03-13 03:38:05] 178: 0 0 44 44 89
[2016-03-13 03:38:15] 4199: 0 0 44 4065 89
[2016-03-13 03:38:17] 178: 0 0 44 44 88
[2016-03-13 03:38:20] 177: 0 0 44 44 88
[2016-03-13 03:38:25] 1437: 0 0 40 1315 81
[2016-03-13 03:38:28] 162: 0 0 40 40 81
Я так понимаю, задержки когда каждый процесс nginx пытается записать лог.
Логи пишутся по 64Кб: access_log ... buffer=64k;
error_log без указания buffer