LINUX.ORG.RU
ФорумAdmin

вернуть sysctl по умолчанию

 


2

2

Доброго дня, машина аренда в дц, CentOS release 6.2 (Final), с давнего времени начались проблемы в виде скачков пинга. Как оказалось проблема только на нашей машине, т.к. рядом стоящие так не лагают.
Вот ответ от хостеров:

От: Dmitry A.Deineka - 2013-07-15 16:16:12
Давайте посмотрим:
Host Loss% Snt Last Avg Best Wrst StDev
1. не наша машина 0.0% 17 0.3 0.3 0.3 0.4 0.0
2. наша машина 0.0% 16 0.3 111.3 0.3 646.3 239.2
Видим даже на небольшом кол-ве пакетов джиттер около 600мс.
Проверьте состояние сетевого стека и переменных ядра, отвечающих за сеть.

Подозреваю, что виноваты кривые руки мои, которые вносили изменения в sysctl для якобы оптимизации при ддосах, делал по гайдам только.
Подскажите как вернуть sysctl в прежнее состояние и он ли это вообще или что-то другое?

Ответ на: комментарий от Deleted

А если настройки сохраняются? Как узнать, что они не восстанавливаются при перезагрузках? Только в rc.local может быть?

ivan2012
() автор топика
Ответ на: комментарий от ivan2012

Настройки sysctl не сохранются сами. «Сохранить» их можно следующим образом:

  • в /etc/sysctl.conf или /etc/sysctl.d/*.conf;
  • где-нибудь в самописных скриптах добавить явный вызов утилиты sysctl с нужными параметрами;
  • где-нибудь в самописных скриптах добавить запись в /proc/sys/.

В общем, если ты специально настройки sysctl не сохранял, то «автоматически» их никто сохранять не будет. Если всё-таки куда-то что-то записывал - удали и перезагрузи систему.

Deleted
()
Ответ на: комментарий от Deleted

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

ivan2012
() автор топика
Ответ на: комментарий от Deleted

Вот ещё кусок из мана:

       --system
              Load settings from all system configuration files.
              /run/sysctl.d/*.conf
              /etc/sysctl.d/*.conf
              /usr/local/lib/sysctl.d/*.conf
              /usr/lib/sysctl.d/*.conf
              /lib/sysctl.d/*.conf
              /etc/sysctl.conf
Из этих файлов загружаются настройки при старте системы.

Deleted
()
Ответ на: комментарий от Deleted

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

/etc/init.d/network restart
?

ivan2012
() автор топика
Ответ на: комментарий от ivan2012

На сколько я понимаю соединения скорее всего порвутся.

MrClon ★★★★★
()
Ответ на: комментарий от ivan2012

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

сильно зависит от настроек и соединений. но скорее всего невозможно.
по теме сказали уже - настройки sysctl хранятся в /etc/sysctl.conf, если ты не сохранял их туда - после ребута все будет как было по дефолту.

Komintern ★★★★★
()

Во FreeBSD, например, состояние sysctl берётся из /etc/sysctl.conf. Прозреваю, что в линуксах что-то подобное должно быть.

IPR ★★★★★
()
Ответ на: комментарий от ivan2012

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

IPR ★★★★★
()
Ответ на: комментарий от ivan2012

restart для /etc/init.d/network это stop, потом start. При выполнение stop все интерфейсы будут Down, все локальные программы, работающие с сокетами, это узнают, соединения порвутся.

Поэтому, чтобы текущие соединения не разорвались, настройки можно менять только руками (командой ip), да и то осторожно.

mky ★★★★★
()
Ответ на: комментарий от mky

На удивление все соединения не разорвались при юзанье

/etc/init.d/network restart
, рестартать машину не пришлось. А поповоду проблемы с лагами и скачками пинга, этому виновник
echo "20000" > /proc/sys/net/ipv4/tcp_max_syn_backlog
echo "1" > /proc/sys/net/ipv4/tcp_synack_retries
echo "30" > /proc/sys/net/ipv4/tcp_fin_timeout
echo "5" > /proc/sys/net/ipv4/tcp_keepalive_probes
echo "15" > /proc/sys/net/ipv4/tcp_keepalive_intvl
echo "20000" > /proc/sys/net/core/netdev_max_backlog
echo "20000" > /proc/sys/net/core/somaxconn
Вернул на настройки по умолчанию
echo "1024" > /proc/sys/net/ipv4/tcp_max_syn_backlog
echo "5" > /proc/sys/net/ipv4/tcp_synack_retries
echo "30" > /proc/sys/net/ipv4/tcp_fin_timeout
echo "5" > /proc/sys/net/ipv4/tcp_keepalive_probes
echo "15" > /proc/sys/net/ipv4/tcp_keepalive_intvl
echo "3000" > /proc/sys/net/core/netdev_max_backlog
echo "3000" > /proc/sys/net/core/somaxconn
и все стало нормально. Всем спасибо за ответы!

ivan2012
() автор топика
Ответ на: комментарий от mky

restart для /etc/init.d/network это stop, потом start. При выполнение stop все интерфейсы будут Down, все локальные программы, работающие с сокетами, это узнают, соединения порвутся

В FC, RHEL и CentOS соединение не рвется при service network restart

vasya_pupkin ★★★★★
()
Ответ на: комментарий от vasya_pupkin

Да, я нагнал. В linux'е когда сетевой интерфейс становится down, сокеты не закрываются, write()/read() на этот сокет не даёт ошибку, приложение спокойно ждёт.

mky ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.