Перейти к содержимому
Калькуляторы

vitalyR

Пользователи
  • Публикации

    7
  • Зарегистрирован

  • Посещение

О vitalyR

  • Звание
    Абитуриент
    Абитуриент

Контакты

  • ICQ
    Array

Посетители профиля

834 просмотра профиля
  1. насчет гипертрединга у меня уже давно такие мысли, ничего хорошего от него нету, все руки не доходят, но второй проц вынимать не буду! а насчет количества потоков, по 4 потока на карту эт как бы не оч и много, при условии наличия всего 2 карт =)
  2. как вариант.....всего {irqXXX: igb}-тредов у меня 10, а {igbX que}-тредов 8 штук, плюс 2 штуки вида {igbX link}, которые как раз наверное и отвечают за линк-статус, итого в обработке трафа участвуют только 8 {irqXXX: igb}-тредов! судя по исходникам: /* ** This will autoconfigure based on ** the number of CPUs if left at 0. */ static int igb_num_queues = 0; TUNABLE_INT("hw.igb.num_queues", &igb_num_queues); количество очередей регулируется параметром hw.igb.num_queues, попробую поиграться с его значением...
  3. можно было вообще ничего не тюнить пробовал...все 8 igb-тредов собираются в кучу на 4 ядра, с прибиванием хотя бы на 8 получается разбить! до сих пор остается для меня все равно непонятным почему по 1 одному треду с каждой карточки все равно бездействует.
  4. забил я на эту отложенную обработку, никак не получилось распараллелить более, чем на 4 ядра, сделал так: 1. net.isr.direct=1 2. net.isr.direct_force=1 3. прибил igb треды к ядрам по tid`ам: procstat -at | sed -E '/irq.*igb*/!d;' | awk '{print $2, $4, $5;}'| sed -E 's/^([0-9]+) irq([0-9]+): igb([0-9])/\1 \2 \3/' | while read tid irq igb do cpu=$(( ($irq + $igb) % $cpus )) echo "Linking irg${irq}:igb${igb} to cpu${cpu}" ${cpusetctl} -l $cpu -t $tid done 2 x igb-карты, по 4 треда на карту, итого задействовано 8 ядер, еще 2 igb-треда (по одному с каждой карты) все равно "курят" полет пока нормальный, хотя особо больших нагрузок тоже не было, максимально около 50 килопакетов...
  5. Для igb есть hw.igb.max_interrupt_rate. Им можно изменять лимит прерываний в секунду. Для em есть патч.Можно погуглить, есть некоторая информация для размышления. а можно по подробней про hw.igb.max_interrupt_rate....как увеличение или уменьшение его значения может повлиять на распараллеливание по CPU? что бы не делал, не получается задействовать больше 4 ядер из 16 имеющихся(((
  6. Карты Intel 82575EB Gigabit Network Connection [igb] netgraph используется, но только для подсчета трафика, в целом nat и шейпинг - без netgraph, поэтому без netisr не получится. пробовал net.isr.direct=1, обработка идет в треде irq, но в целом задействуется так же только 4 ядра! ! !
  7. Добрый день! Имеется сервер: - FreeBSD 8.1-RELEASE amd64 - 2 x igb карточки, <Intel® PRO/1000 Network Connection version - 1.9.5> - 2 x CPU: Intel® Xeon® CPU E5620 @ 2.40GHz, всего 16 ядер - 4Гб RAM - ipfw+nat+dummynet cat /boot/loader.conf net.isr.maxthreads=8 kern.ipc.nmbclusters=65536 hw.igb.rxd=2048 hw.igb.txd=2048 net.isr.bindthreads=1 часть sysctl.conf: cat /etc/sysctl.conf net.inet.ip.fw.one_pass=0 net.link.ether.ipfw=0 net.isr.direct=0 net.isr.direct_force=0 net.inet.ip.intr_queue_maxlen=1024 net.route.netisr_maxqlen=1024 net.inet.ip.dummynet.io_fast=1 net.inet.ip.dummynet.hash_size=8192 net.inet.ip.dummynet.expire=1 net.inet.ip.fastforwarding=0 net.inet.ip.forwarding=1 Сразу оговорюсь, что при текущей пиковой нагрузке 200Мбит/с и около 20-30 kpps (in/out) у меня нет никаких проблем или ошибок!!! Вопрос мой касается следующего: почему вне зависимости от значения net.isr.maxthreads (8 9 10) используется только 4 netisr потока, а остальные курят??? При net.isr.maxthreads=8 такая картина вечером: top -SH -n 500 | grep isr 12 root -44 - 0K 720K WAIT 15 696:03 26.98% {swi1: netisr 15} 12 root -44 - 0K 720K WAIT 13 631:42 25.66% {swi1: netisr 13} 12 root -44 - 0K 720K WAIT 0 690:25 22.98% {swi1: netisr 0} 12 root -44 - 0K 720K CPU14 14 698:00 22.69% {swi1: netisr 14} 12 root -44 - 0K 720K WAIT 11 0:00 0.00% {swi1: netisr 11} 12 root -44 - 0K 720K WAIT 9 0:00 0.00% {swi1: netisr 9} 12 root -44 - 0K 720K WAIT 10 0:00 0.00% {swi1: netisr 10} 12 root -44 - 0K 720K WAIT 0 0:00 0.00% {swi1: netisr 12} Увеличиваешь net.isr.maxthreads=10, картина остается прежней... Конечно, сейчас сервер отлично справляется с нагрузкой, но хотелось бы, чтобы в будущем у меня не было такого, что 4 ядра нагружены, а остальные 12 курили. Этот вопрос неоднократно поднимался, например, в этой теме: http://forum.nag.ru/forum/index.php?showto...rt=#entry569422 НО я так и не понял, что все таки надо допиливать и куда смотреть! Если я недостаточно точно обрисовал картину, напишите, что еще нужно и я обязательно кину необходимые данные=) -- С уважением Разживин Виталий г. Тамбов