Не хватает диапазона ip_local_port_range

1 234
N
На сайте с 06.05.2007
Offline
419
#31

Dimka, ну так смотрите еще какие модули "держат" модуль conntrack. они зависят друг от друга.

В другом порядке пробуйте, в конце концов.

Можно еще перегрузить и попытаться не загружать ту программу или скрипт которая их загрузила.

Кнопка вызова админа ()
esetnod
На сайте с 16.07.2009
Offline
134
#32

iptables -t raw -A PREROUTING -j NOTRACK

iptables -t raw -A OUTPUT -j NOTRACK

Будет чуть медленнее, чем при совсем выгруженном conntrack.

А также смотрите, кто у вас инициирует столько исходящих соединений, что сокеты висят в SYN_SENT без ответа.

Быстрый хостинг на SSD от $0.99 (http://just-hosting.ru/) | OpenVZ (http://just-hosting.ru/vds.html) и KVM (http://just-hosting.ru/vds-kvm.html) VDS от $7.95
D
На сайте с 07.11.2000
Offline
219
#33

Огромное спасибо за советы.

Еще обнаружил проблему.

При более менее активных дисковых операциях, начинает подвисать 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

H
На сайте с 05.05.2015
Offline
61
#34

скорей отдача статики просадит i/o чем запись лога, тем более с buffer

N
На сайте с 06.05.2007
Offline
419
#35
Dimka:
При более менее активных дисковых операциях, начинает подвисать nginx. Мне кажется, что процесс nginx блокируется при записи лога (лог нужен).

Но вы же нагружаете диск этим копированием и еще и на кеш файлов воздействуете.

Логи да еще и с буфером почти незаметно влияют.

D
На сайте с 07.11.2000
Offline
219
#36

atop - нагрузка "только запись логов":

  PID      RDDSK          WRDSK      WCANCL           DSK        CMD       
1473 12K 78184K 0K 18% flush-9:2
28907 80K 66728K 0K 16% nginx
28908 44K 66572K 0K 16% nginx
28905 140K 65696K 0K 16% nginx
28906 236K 65560K 0K 16% nginx
473 0K 51396K 0K 12% jbd2/md2-8



---------- Добавлено 14.03.2016 в 17:13 ----------

Погуглил - проблема не только у мнея. Судя по всему блокирование nginx из-за бага в ядре 12309: bugzilla.kernel.org/show_bug.cgi?id=12309

Победил следующим путем.

Было:

# cat /proc/sys/vm/swappiness
10
# cat /proc/sys/vm/dirty_ratio
40
# cat /proc/sys/vm/dirty_background_ratio
2
# cat /proc/sys/vm/vfs_cache_pressure
1000
# cat /sys/block/sda/queue/nr_requests
128
# cat /sys/block/sdb/queue/nr_requests
128
# sysctl vm.vfs_cache_pressure
vm.vfs_cache_pressure = 1000
# cat /proc/sys/vm/swappiness
10

При:

# 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=0
sysctl 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


---------- Добавлено 14.03.2016 в 17:27 ----------

Только во время создания 15Гбайт файла вырос disk latency до 4 сек (до этого он был максимум 0.1)
N
На сайте с 06.05.2007
Offline
419
#37
Dimka:
из-за бага в ядре 12309

Дело в том, что этот баг багом не все признают.

Так, некоторое изменение поведения от версии к версии когда система и так уже критически нагружена.

Как nginx будет успевать отдавать файлы, если диск загружен на 100%?

Все эти явления сложно классифицировать, пользователи их плохо описывают и поэтому их просто сваливают на баг 12309. Так что остается замедлять и понижать приоритеты этому копированию. Хорошо, что вам удалось подергать за ручки и что-то изменилось. Но это как-то неосознанно происходит. кто-то где-то написал циферки и у 25% пользователей кажется заработало ? Я тоже не возьмусь в данном случае советовать за какие именно ручки дергать.

Поэтому, я бы все-таки начал с ionice и rsync --bwlimit чтобы неприоритетные задачи сделать незаметными

D
На сайте с 07.11.2000
Offline
219
#38
netwind:
Хорошо, что вам удалось подергать за ручки и что-то изменилось. Но это как-то неосознанно происходит.

Все верно. Причем я не уверен, что эти опции не вылезут где-то другим боком.

netwind:
Поэтому, я бы все-таки начал с ionice и rsync --bwlimit чтобы неприоритетные задачи сделать незаметными

Вы имеете ввиду всем задачам, выполняемым по крону, поставить ionice -с3 или другое?

rsync --bwlimit - "ограничивает пропускную способность в КБ/c"

У меня пока не машине нет бакапов. Или где-то еще используется?

Еще, я так понимаю, может подвисать и из-за зеркального рейда.

N
На сайте с 06.05.2007
Offline
419
#39
Dimka:
Вы имеете ввиду всем задачам, выполняемым по крону, поставить ionice -с3 или другое?

Вы сами запускаете команды и поэтому я ограничиваюсь декларацией цели, а не конкретными командами. В частности можно и так.

Dimka:
rsync --bwlimit - "ограничивает пропускную способность в КБ/c"
У меня пока не машине нет бакапов. Или где-то еще используется?

Ну вы же копировали файлы зачем-то. Значит есть необходимость.

А теперь попробуйте rsync, потому что он тоже может работать как программа копирования и именно там есть опция для замедления.

Просто, в других программах очень редко встречаются. В tar - нету. Нужно сильно помучатся.

Dimka:
Еще, я так понимаю, может подвисать и из-за зеркального рейда.

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

Некоторое замедление даст bitmap. Скорее всего, это вам не нужно, но в зависимости от дистрибутива и способа инсталляции bitmap у raid1 может включиться.

1 234

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий