Перейти к содержимому

загрузка проца


Рекомендованные сообщения

  В 11.12.2011 в 15:03, Небесный сказал:

Ребята, попоробуйте шнягу, что вот советуют в этой статье.

http://habrahabr.ru/.../sysadm/110616/

 

А, теперь более подробно, на что я особо обратил внимание:

 

  Цитата

С хешами и без хешей

Собственно, про использование хешей статей уже написано немало – это не является “чем-то военным”. Можно обратиться к первоисточнику.

 

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

Собственно, использование хеш-фильтров абсолютно стандартная практика для построения шейперов, и обязательно при > 200 абонентов. При линейном просмотре для 5-10 тыс адресов загнется любое самое крутое железо на смешном трафике, с хешами у меня выходит 800мбит с 1000+ ppp сессий и 10% загрузкой на ядро. Т.е. сервер осилит столько, сколько влезет в интерфейсы.

Ссылка на сообщение
Поделиться на других сайтах
  • Ответы 158
  • Created
  • Последний ответ

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Видите как все просто? Теперь осталось только избавиться от линукса и жить долго и щасливо

Согласен, давай те прекратим!

Тюнинг sysctl для роутера неэффективен, большинство параметров для транзитного трафика просто не работает.   net.ipv4.neigh.default.gc_thresh1=1024 net.ipv4.neigh.default.gc_thresh2=4096 net.ipv4.

Posted Images

абсолютно согласен с KaYot.

Правила iptables уже заменены списками - выиграш коллосальный.

Кто-нибудь может привести пару примеров хеш-списков для tc ?

Ссылка на сообщение
Поделиться на других сайтах
  • 7 months later...

Парни , как лечить?

 

# uname -a

Linux giant 3.2.0-23-generic #36-Ubuntu SMP Tue Apr 10 20:39:51 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

 

Xeon E3-1200 Processor - 4 ядра

12 гиг озу

Intel Corporation 82576 Gigabit Network Connection (rev 01) - 4 х портовая гигиабитная карта , траффика на вход 400 мегабайт (не мегабит) на исход столько же .

 

 

# iptables -L

Chain INPUT (policy ACCEPT)

target prot opt source destination

 

Chain FORWARD (policy ACCEPT)

target prot opt source destination

 

Chain OUTPUT (policy ACCEPT)

target prot opt source destination

 

 

машинка тупой вебсервер , не более .

 

 

Когда траффа чуток даже больше чем 400 , начинает умирать проц от процесса ksoftirqd/0 , который прерывания раскидывает , распредилил прерывания ручками на разные ядра , не помогает , дрова с napi , igb . Что делать - непонятно . LACP , Хелп !!

 

PS интересно . как люди с 10G живут ...

Ссылка на сообщение
Поделиться на других сайтах

Вывод iptables -nL -t nat интереснее. NAT сильнее нагружает.

Еще есть мнение что FreeBSD для задач маршрутизации рулит больше.

Ссылка на сообщение
Поделиться на других сайтах

Я ж говорил , никаких функций кроме вебсервера

 

 

# iptables -nL -t nat

Chain PREROUTING (policy ACCEPT)

target prot opt source destination

 

Chain INPUT (policy ACCEPT)

target prot opt source destination

 

Chain OUTPUT (policy ACCEPT)

target prot opt source destination

 

Chain POSTROUTING (policy ACCEPT)

target prot opt source destination

Ссылка на сообщение
Поделиться на других сайтах

cat /proc/interrupts в студию. Ну и top не помешает.

Сейчас похоже сетевка грузит одно ядро.

 

Сходу можно попробовать -j NOTRACK в iptables заюзать, при большом трафике профит может быть многократный.

Ссылка на сообщение
Поделиться на других сайтах
  В 19.07.2012 в 18:14, arty777 сказал:

Я ж говорил , никаких функций кроме вебсервера

...

Тогда каким боком тут тема про stg?

Ссылка на сообщение
Поделиться на других сайтах
  Цитата
Тогда каким боком тут тема про stg?

тут принято плакаться :)

 

2 arty777

  Цитата
траффика на вход 400 мегабайт (не мегабит) на исход столько же

А в винт случайно не уткнулись? Ммап, сендфайл у апачей врублены? Если нгинкс - то нопуш/ноудилай? Ну и акцепт фильтра в общем случае.

 

Если серьезно - а сколько вобще векторов прерываний у самих карточек? В вашем случае их явно должно быть в районе ~4-8 на каждую голову, итого 16-32 прерываний. Есть очень некислый шанс не добиться адекватной утилизации их возможностей на 4-х то ядрах.

 

ЗЫж ничерта не понимаю в этих ваших линуксах. Но прежде всего банально посмотрел бы

# procstat -a -t

и

# vmstat -z

с

# vmstat -i

Аналоги думаю имеются

Ссылка на сообщение
Поделиться на других сайтах

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

 

  Показать содержимое

 

Гипертрейдинг не выключал , думаю особо не поможет его отключение ((

 

По состоянию на утро (далеко не пик нагрузки):

 

TOP

 

  Показать содержимое

 

 

 

В винт и прочее , не уткнулись .

 

  Цитата
Если серьезно - а сколько вобще векторов прерываний у самих карточек?

ой, а как это проверить? Как узнать?

 

 

 

y# vmstat -Sm 1

 

  Показать содержимое

 

 

 

cat /proc/stat

 

  Показать содержимое

 

 

 

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

Ссылка на сообщение
Поделиться на других сайтах

Судя по TIME для ksoftirqd у вас все прерывания обрабатываются одним ядром. Сравните TIME для разных ksoftirqd - на лицо перекос. HyperThreading лучше не включать, но в вашем случае действительно не поможет.

Короче, у вас проблема с балансировкой прерываний. Думаю, "ручками раскидать" у вас не получилось. Как делали?

И к стати, самое интересное - cat /proc/interrupts - не показывает :)

Ссылка на сообщение
Поделиться на других сайтах

А как это вы определили что ручками рампределить не получилось? я к пимеру # cat /proc/interrupts вижу каунты прерываний на разные ядра расбрасываются .

Делал так:

 

  Показать содержимое

 

Ссылка на сообщение
Поделиться на других сайтах
  В 20.07.2012 в 07:20, arty777 сказал:

А как это вы определили что ручками рампределить не получилось? я к пимеру # cat /proc/interrupts вижу каунты прерываний на разные ядра расбрасываются .

...

Ну я вашего cat /proc/interrupts так и не увидел, там картинка которая не грузится.

А определил просто - по времени работы ksoftirqd. Один работает, все остальные простаивают.

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

Ссылка на сообщение
Поделиться на других сайтах

Вечером топ покажу . Ниче там примечательного . процесы нгиникса жрут 65% ЦП и все. При траффе >400 мегабайт ksoftirqd начинает хавать 50% цпу и трафф снижается , снизился - ksoftirqd отпал в 0% цпу .

 

Есть ли альтернатива irqbalance ?

 

Кастомные более производительные дрова под сетевушки ? Которые не генерят столько прерываний к примеру ) Захочу вставить еще 1 сетевуху 4-х головую , ваще отстой будет . Люди ж наверняка как-то живут на 10G ...

 

 

PS прилепил картинку вложением

post-12320-0-73202600-1342772794_thumb.jpg

Ссылка на сообщение
Поделиться на других сайтах

Попробую апнуть дрова на http://sourceforge.net/projects/e1000/files/igb%20stable/ последнюю версию

У меня

 

# ethtool -i eth1

driver: igb

version: 3.2.10-k

firmware-version: 1.5-1

bus-info: 0000:04:00.0

supports-statistics: yes

supports-test: yes

supports-eeprom-access: yes

supports-register-dump: yes

Ссылка на сообщение
Поделиться на других сайтах

Правда я никогда не ставил ручкам и дрова )) Че-то опгуглил , ниче кроме десктопной убунты с графич интерфейсом не нашет , дайте плиз ссыль на мануал по ручной установке дров для сетевух , вдруг кто знает ...

Ссылка на сообщение
Поделиться на других сайтах

Да там, по идее, проблем никаких. Нужны исходники ядра. Потом собирается модуль из новой версии дров и загружается через modprobe. Если все в порядке - кидаем его вместо старого в /lib/modules/...

ksoftirqd начинает работать когда ядро не успевает обрабатывать прерывания и ставит их в очередь.

Люди живут с 10G при маршрутизации, а у вас все-таки web-сервер. Немножко другие задачи, более тяжеловесные. Не пробовали оптимизировать nginx, сайт или раскидать его задачи на несколько серваков?

Ссылка на сообщение
Поделиться на других сайтах

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

Ссылка на сообщение
Поделиться на других сайтах

Судя по топу у вас таки вся загрузка от сети идет на 0 ядро. Об этом четко говорит строчка '57.9%si'. На остальных ядрах soft interrupts тоже есть, но в значительно меньшем количестве.

Может LACP неправильно работает, может IGB не умеет правильно балансировать при LACP.

Пробовали прерывания раскидать как ff на каждый вектор?

Ссылка на сообщение
Поделиться на других сайтах
  В 20.07.2012 в 09:35, KaYot сказал:

Пробовали прерывания раскидать как ff на каждый вектор?

http://local.com.ua/..._80#entry329250

Вы это имеете ввиду?

 

Действительно нагрузка на 0-е ядро самая высокая , че-то ранее не замечал ... , вот скрин топа еще , за траффика уже 300/300 мегабайт . Как определить какой процесс какое ядро конкретно нагружает?

post-12320-0-67672300-1342780557_thumb.jpg

Ссылка на сообщение
Поделиться на других сайтах

Загрузка от nginx'ов это полностью понятно и можете на нее не смотреть. Оно само раскидается по свободным ядрам. Проблема именно в обработке трафика сетевкой, смотреть нужно в топе на колонку si(soft interrupts).

В списке процессов этого нет!!

Ссылка на сообщение
Поделиться на других сайтах

Пошаманил . удалось добится следующей картины:

 

top - 14:56:44 up 22 days,  2:07,  3 users,  load average: 1.66, 1.57, 1.28
Tasks: 149 total,   2 running, 147 sleeping,   0 stopped,   0 zombie
Cpu0  :  6.1%us, 12.5%sy,  0.0%ni, 29.5%id,  0.0%wa,  0.0%hi, 51.9%si,  0.0%st
Cpu1  :  3.9%us, 12.6%sy,  0.0%ni, 38.2%id,  0.0%wa,  0.0%hi, 45.3%si,  0.0%st
Cpu2  :  4.4%us,  9.9%sy,  0.0%ni, 51.5%id,  0.0%wa,  0.0%hi, 34.2%si,  0.0%st
Cpu3  :  5.1%us, 13.0%sy,  0.0%ni, 53.6%id,  0.0%wa,  0.0%hi, 32.3%si,  0.0%st
Cpu4  :  6.2%us, 10.5%sy,  0.0%ni, 40.6%id,  0.0%wa,  0.0%hi, 42.8%si,  0.0%st
Cpu5  :  4.0%us, 11.4%sy,  0.0%ni, 44.5%id,  0.0%wa,  0.0%hi, 40.1%si,  0.0%st
Cpu6  :  2.8%us, 11.3%sy,  0.0%ni, 34.3%id,  0.0%wa,  0.0%hi, 51.6%si,  0.0%st
Cpu7  :  3.2%us,  9.6%sy,  0.0%ni, 45.7%id,  0.0%wa,  0.0%hi, 41.4%si,  0.0%st
Mem:  12268612k total,  6445188k used,  5823424k free,   259216k buffers
Swap: 12271612k total,	    0k used, 12271612k free,  1006040k cached

 

вроде лучше . Посмотрим дальше как будет оно себя вести

Ссылка на сообщение
Поделиться на других сайтах

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

Результат всегда можно увидеть в cat /proc/interrupts, при правильной настройке число прерываний на нужных ядрах будет расти примерно равномерно.

Ссылка на сообщение
Поделиться на других сайтах

Планирую на днях вырубить гипегтрейдинг , и более тщательно прерывания сетевух раскинуть , смотреть удобно так:

watch cat /proc/interrupts

Ссылка на сообщение
Поделиться на других сайтах

o_O А у вас включен HT? А ядер сколько реально, 4?

Тогда все просто - выключайте нафиг, драйвер IGB грузите без поддержки векторов( у вас как раз 4 интерфейса на 4 ядра) - будет быстро и просто.

Ссылка на сообщение
Поделиться на других сайтах

ядер реально 4 , HT вырублю на днях ...

  Цитата

драйвер IGB грузите без поддержки векторов

С этого места поподробнее .... )) Как ? Зачем? Последствия?

Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.


×
×
  • Создать...