kvirtu Опубликовано: 19 квітня, 2012 Опубликовано: 19 квітня, 2012 Всем привет ! Есть фря 8.2, сервак с сетевыми карточками: fxp0, em0, age0, re0. Подскажите нужно ли включать polling на всех интерфейсах ? Или только на интеле ? В инете пишут по разному, у кого какие реальные результаты. Спасибо.
nightfly Опубліковано: 19 квітня, 2012 Опубліковано: 19 квітня, 2012 Нет, не нужно нигде. Посмотрите за окно - там 2012-й год.
KabaH Опубліковано: 19 квітня, 2012 Опубліковано: 19 квітня, 2012 Полинг это анахронизм. Реальные поцоны юзают канонические Интеловские сетевые карточки умеющие управлять частотой прерываний.
LV10 Опубліковано: 19 квітня, 2012 Опубліковано: 19 квітня, 2012 polling ушел в небытие сразу после фряхи8 и дров от яндекса
maxx Опубліковано: 19 квітня, 2012 Опубліковано: 19 квітня, 2012 Оффтоп, но может кто-то посоветует, как на интеловых картах распаралеливать ппое траффик по нескольким прерываниям. PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND 12 root 1 171 ki31 0K 16K CPU4 4 164.7H 97.75% idle: cpu4 14 root 1 171 ki31 0K 16K CPU2 2 163.4H 96.58% idle: cpu2 13 root 1 171 ki31 0K 16K CPU3 3 163.8H 91.80% idle: cpu3 11 root 1 171 ki31 0K 16K RUN 5 160.0H 77.44% idle: cpu5 16 root 1 171 ki31 0K 16K RUN 0 99.1H 58.54% idle: cpu0 [color=#ff0000] 32 root 1 -68 - 0K 16K CPU2 2 39.1H 52.73% irq256: igb0 [/color] 15 root 1 171 ki31 0K 16K CPU1 1 129.0H 48.54% idle: cpu1 65 root 1 -68 - 0K 16K CPU0 0 67.1H 37.74% dummynet 55 root 1 -68 - 0K 16K WAIT 5 334:24 21.68% irq268: igb1 53 root 1 -68 - 0K 16K WAIT 4 348:16 7.76% irq267: igb1 51 root 1 -68 - 0K 16K WAIT 3 333:13 7.52% irq266: igb1 45 root 1 -68 - 0K 16K RUN 0 401:31 6.93% irq263: igb1 33 root 1 -68 - 0K 16K - 5 262:24 5.13% igb0 que 47 root 1 -68 - 0K 16K WAIT 1 339:59 5.08% irq264: igb1 49 root 1 -68 - 0K 16K WAIT 2 342:34 4.93% irq265: igb1 3349 root 2 45 0 121M 41768K select 3 168:04 1.22% mpd5 Ибо такая картина нихера не радует. в праймтайм ложит 1 ядро проца в полку. Прибивание к нескольким ядрам только усугубляет результат. Остальные 5 ядер свободны.
adeep Опубліковано: 19 квітня, 2012 Опубліковано: 19 квітня, 2012 Оффтоп, но может кто-то посоветует, как на интеловых картах распаралеливать ппое траффик по нескольким прерываниям. PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND 12 root 1 171 ki31 0K 16K CPU4 4 164.7H 97.75% idle: cpu4 14 root 1 171 ki31 0K 16K CPU2 2 163.4H 96.58% idle: cpu2 13 root 1 171 ki31 0K 16K CPU3 3 163.8H 91.80% idle: cpu3 11 root 1 171 ki31 0K 16K RUN 5 160.0H 77.44% idle: cpu5 16 root 1 171 ki31 0K 16K RUN 0 99.1H 58.54% idle: cpu0 [color=#ff0000] 32 root 1 -68 - 0K 16K CPU2 2 39.1H 52.73% irq256: igb0 [/color] 15 root 1 171 ki31 0K 16K CPU1 1 129.0H 48.54% idle: cpu1 65 root 1 -68 - 0K 16K CPU0 0 67.1H 37.74% dummynet 55 root 1 -68 - 0K 16K WAIT 5 334:24 21.68% irq268: igb1 53 root 1 -68 - 0K 16K WAIT 4 348:16 7.76% irq267: igb1 51 root 1 -68 - 0K 16K WAIT 3 333:13 7.52% irq266: igb1 45 root 1 -68 - 0K 16K RUN 0 401:31 6.93% irq263: igb1 33 root 1 -68 - 0K 16K - 5 262:24 5.13% igb0 que 47 root 1 -68 - 0K 16K WAIT 1 339:59 5.08% irq264: igb1 49 root 1 -68 - 0K 16K WAIT 2 342:34 4.93% irq265: igb1 3349 root 2 45 0 121M 41768K select 3 168:04 1.22% mpd5 Ибо такая картина нихера не радует. в праймтайм ложит 1 ядро проца в полку. Прибивание к нескольким ядрам только усугубляет результат. Остальные 5 ядер свободны. PPPoE? попробуйте 9ку фрю и включенный net.isr. Возможно придется дописать патч в isr с хэш-функцией для разделения трафика по потокам(ядрам). Есть готовый для L3
maxx Опубліковано: 19 квітня, 2012 Опубліковано: 19 квітня, 2012 Оффтоп, но может кто-то посоветует, как на интеловых картах распаралеливать ппое траффик по нескольким прерываниям. PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND 12 root 1 171 ki31 0K 16K CPU4 4 164.7H 97.75% idle: cpu4 14 root 1 171 ki31 0K 16K CPU2 2 163.4H 96.58% idle: cpu2 13 root 1 171 ki31 0K 16K CPU3 3 163.8H 91.80% idle: cpu3 11 root 1 171 ki31 0K 16K RUN 5 160.0H 77.44% idle: cpu5 16 root 1 171 ki31 0K 16K RUN 0 99.1H 58.54% idle: cpu0 [color=#ff0000] 32 root 1 -68 - 0K 16K CPU2 2 39.1H 52.73% irq256: igb0 [/color] 15 root 1 171 ki31 0K 16K CPU1 1 129.0H 48.54% idle: cpu1 65 root 1 -68 - 0K 16K CPU0 0 67.1H 37.74% dummynet 55 root 1 -68 - 0K 16K WAIT 5 334:24 21.68% irq268: igb1 53 root 1 -68 - 0K 16K WAIT 4 348:16 7.76% irq267: igb1 51 root 1 -68 - 0K 16K WAIT 3 333:13 7.52% irq266: igb1 45 root 1 -68 - 0K 16K RUN 0 401:31 6.93% irq263: igb1 33 root 1 -68 - 0K 16K - 5 262:24 5.13% igb0 que 47 root 1 -68 - 0K 16K WAIT 1 339:59 5.08% irq264: igb1 49 root 1 -68 - 0K 16K WAIT 2 342:34 4.93% irq265: igb1 3349 root 2 45 0 121M 41768K select 3 168:04 1.22% mpd5 Ибо такая картина нихера не радует. в праймтайм ложит 1 ядро проца в полку. Прибивание к нескольким ядрам только усугубляет результат. Остальные 5 ядер свободны. PPPoE? попробуйте 9ку фрю и включенный net.isr. Возможно придется дописать патч в isr с хэш-функцией для разделения трафика по потокам(ядрам). Есть готовый для L3 при net.isr swi1 отжирает 1 ядро в 0 и начинает дропать пакеты, параллелить никак не хочет, ввиду того что сетевой стек раскидывает на ядра по заголовакам айпи пакетов. В ппое траффике таковых нету так что внуренний интерфейс априори ложится на 1 ядро. На интерфейсе ошибки. при включенном более менее вменяемо пашет. в 9ке разве реализовано распараллеливание процессов по макам ? Че-то я на 2 насе поставил 9ку - картина 1 в 1.
adeep Опубліковано: 19 квітня, 2012 Опубліковано: 19 квітня, 2012 при net.isr swi1 отжирает 1 ядро в 0 и начинает дропать пакеты, параллелить никак не хочет, ввиду того что сетевой стек раскидывает на ядра по заголовакам айпи пакетов. В ппое траффике таковых нету так что внуренний интерфейс априори ложится на 1 ядро. На интерфейсе ошибки. при включенном более менее вменяемо пашет. в 9ке разве реализовано распараллеливание процессов по макам ? Че-то я на 2 насе поставил 9ку - картина 1 в 1. сравните: включен isr: 12 root -72 - 0K 496K WAIT 2 0:02 7.67% intr{swi1: netisr 2} 12 root -72 - 0K 496K WAIT 1 0:02 7.28% intr{swi1: netisr 1} 12 root -72 - 0K 496K WAIT 0 0:05 4.20% intr{swi1: netisr 0} 12 root -72 - 0K 496K WAIT 3 0:02 4.20% intr{swi1: netisr 3} я что-то не так делаю? Вы упустили оба важных момента: фря 9.х и патч на распределение очередей - там достаточно просто, надо дописать строк 10-20 исходного кода, чтобы сделать распределение очередей на основе информации PPPoE заголовков (к примеру хэш на основе MAC-адреса пакета).
fastvd Опубліковано: 20 квітня, 2012 Опубліковано: 20 квітня, 2012 мы тоже долго думалиискалимечтали...до конца просто поставили проц i5 с частотой 3,4 ггц и теперь НАС при 750мбитах(сетевуха igb.фря 7,4) по процу: 1-ое ядро на котором лежит РРРоЕ грузится ну максимум на 55%, 2-4 на 12-15 процентов... тоисть вход распредиляется прекрасно по интерруптам, а весь исход по РРРоЕ грузит проц до 55%... тоесть по расчетам 1 гиг прожует как раз с небольшим запасом... до этого на делловском серваке с 2-мя двухядерными ксенонами по 3,3 ггц частоте проц в 98% впёрся при 580-600 мбитах.... вот вам и i5 )
maxx Опубліковано: 20 квітня, 2012 Опубліковано: 20 квітня, 2012 при net.isr swi1 отжирает 1 ядро в 0 и начинает дропать пакеты, параллелить никак не хочет, ввиду того что сетевой стек раскидывает на ядра по заголовакам айпи пакетов. В ппое траффике таковых нету так что внуренний интерфейс априори ложится на 1 ядро. На интерфейсе ошибки. при включенном более менее вменяемо пашет. в 9ке разве реализовано распараллеливание процессов по макам ? Че-то я на 2 насе поставил 9ку - картина 1 в 1. сравните: включен isr: 12 root -72 - 0K 496K WAIT 2 0:02 7.67% intr{swi1: netisr 2} 12 root -72 - 0K 496K WAIT 1 0:02 7.28% intr{swi1: netisr 1} 12 root -72 - 0K 496K WAIT 0 0:05 4.20% intr{swi1: netisr 0} 12 root -72 - 0K 496K WAIT 3 0:02 4.20% intr{swi1: netisr 3} я что-то не так делаю? Вы упустили оба важных момента: фря 9.х и патч на распределение очередей - там достаточно просто, надо дописать строк 10-20 исходного кода, чтобы сделать распределение очередей на основе информации PPPoE заголовков (к примеру хэш на основе MAC-адреса пакета). можно ссылочку на патч? или де чего пачетать?
maxx Опубліковано: 20 квітня, 2012 Опубліковано: 20 квітня, 2012 мы тоже долго думалиискалимечтали...до конца просто поставили проц i5 с частотой 3,4 ггц и теперь НАС при 750мбитах(сетевуха igb.фря 7,4) по процу: 1-ое ядро на котором лежит РРРоЕ грузится ну максимум на 55%, 2-4 на 12-15 процентов... тоисть вход распредиляется прекрасно по интерруптам, а весь исход по РРРоЕ грузит проц до 55%... тоесть по расчетам 1 гиг прожует как раз с небольшим запасом... до этого на делловском серваке с 2-мя двухядерными ксенонами по 3,3 ггц частоте проц в 98% впёрся при 580-600 мбитах.... вот вам и i5 ) ну у меня на 6 яйцевом феноме запас поболе будет. Но именно интересует распаралеливание для ппое траффика. ибо при 650 мегабитах по ядрам след картинка. http://clip2net.com/s/1PuNQ к 0 ядру прибит думинет прерывания внутреннего интерфейса к 1-2 но нагрузку ложит четко на 1. И это после тюнинга сетевухи. Кстати насчет запаса, я бы небыл столь категоричен. Нагрузка на яйца растет по экспоненте, так что лишние 20 кппс могут дать большую нагрузку чем предыдущие все.
fastvd Опубліковано: 23 квітня, 2012 Опубліковано: 23 квітня, 2012 при net.isr swi1 отжирает 1 ядро в 0 и начинает дропать пакеты, параллелить никак не хочет, ввиду того что сетевой стек раскидывает на ядра по заголовакам айпи пакетов. В ппое траффике таковых нету так что внуренний интерфейс априори ложится на 1 ядро. На интерфейсе ошибки. при включенном более менее вменяемо пашет. в 9ке разве реализовано распараллеливание процессов по макам ? Че-то я на 2 насе поставил 9ку - картина 1 в 1. сравните: включен isr: 12 root -72 - 0K 496K WAIT 2 0:02 7.67% intr{swi1: netisr 2} 12 root -72 - 0K 496K WAIT 1 0:02 7.28% intr{swi1: netisr 1} 12 root -72 - 0K 496K WAIT 0 0:05 4.20% intr{swi1: netisr 0} 12 root -72 - 0K 496K WAIT 3 0:02 4.20% intr{swi1: netisr 3} я что-то не так делаю? Вы упустили оба важных момента: фря 9.х и патч на распределение очередей - там достаточно просто, надо дописать строк 10-20 исходного кода, чтобы сделать распределение очередей на основе информации PPPoE заголовков (к примеру хэш на основе MAC-адреса пакета). можно ссылочку на патч? или де чего пачетать? ничего не тюнилось, просто родные дрова с сайта интел, НО не последние...так как именно последние глюкали очень сильно(система тупо раз в сутки зависала)
maxx Опубліковано: 23 квітня, 2012 Опубліковано: 23 квітня, 2012 ничего не тюнилось, просто родные дрова с сайта интел, НО не последние...так как именно последние глюкали очень сильно(система тупо раз в сутки зависала) интересует следующее патч на распределение очередей Подсказали вот такое. Незнаю или оно, нету пока тестовой машины - проверить. Обкатаю "напешу атчот". # cat if_ethersubr.c.patch *** if_ethersubr.c Fri Jan 13 09:52:49 2012 --- if_ethersubr.c_ Sun Oct 30 19:40:28 2011 *************** *** 622,627 **** --- 622,633 ---- ifp->if_imcasts++; } + m->m_flags |= M_FLOWID; + m->m_pkthdr.flowid = eh->ether_dhost[0] + eh->ether_dhost[1] + eh->ether_dhost[2] + eh->ether_dhost[3] + eh->ether_d + m->m_pkthdr.flowid += eh->ether_shost[0] + eh->ether_shost[1] + eh->ether_shost[2] + eh->ether_shost[3] + eh->ether_s + + + #ifdef MAC /* * Tag the mbuf with an appropriate MAC label before any other *************** *** 873,878 **** --- 879,908 ---- if ((m = ip_fastforward(m)) == NULL) return; isr = NETISR_IP; + + struct ipheader { + u_char offset [12]; //ip header fields not actually needed here + u_char src [4]; //ip src + u_char dst [4]; //ip dst + } __packed __aligned(4); + + if (m->m_pkthdr.len < sizeof(struct ipheader)) { //from ip_fastforward + if_printf(ifp, "flowid math: discard frame with too small headern"); + goto discard; + } + if (m->m_len < sizeof (struct ipheader) && + (m = m_pullup(m, sizeof (struct ipheader))) == NULL) { //ip_fastforward + if_printf(ifp, "flowid math: discard frame at pullupn"); + return; /* mbuf already free'd */ + } + struct ipheader *ip; + ip = mtod(m, struct ipheader *); + m->m_pkthdr.flowid += ip->src[0] + ip->src[1] + ip->src[2] + ip->src[3]; + m->m_pkthdr.flowid += ip->dst[0] + ip->dst[1] + ip->dst[2] + ip->dst[3]; + + //if_printf(ifp, "Calculated flow id %dn", m->m_pkthdr.flowid); + + break; case ETHERTYPE_ARP:
adeep Опубліковано: 23 квітня, 2012 Опубліковано: 23 квітня, 2012 Подсказали вот такое. Незнаю или оно, нету пока тестовой машины - проверить. Обкатаю "напешу атчот". он и есть. но сделан только для заголовков IP. для заголовков ethernet (=PPPoE) его надо дописывать по аналогии.
Kto To Опубліковано: 24 квітня, 2012 Опубліковано: 24 квітня, 2012 m->m_flags |= M_FLOWID; m->m_pkthdr.flowid = eh->ether_dhost[0] + eh->ether_dhost[1] + eh->ether_dhost[2] + eh->ether_dhost[3] + eh->ether_dhost[4] + eh->ether_dhost[5]; m->m_pkthdr.flowid += eh->ether_shost[0] + eh->ether_shost[1] + eh->ether_shost[2] + eh->ether_shost[3] + eh->ether_shost[4] + eh->ether_shost[5]; не оно ли это? Или там есть какая-то особая магия о которой мы не знаем? Поделитесь...
adeep Опубліковано: 9 травня, 2012 Опубліковано: 9 травня, 2012 m->m_flags |= M_FLOWID; m->m_pkthdr.flowid = eh->ether_dhost[0] + eh->ether_dhost[1] + eh->ether_dhost[2] + eh->ether_dhost[3] + eh->ether_dhost[4] + eh->ether_dhost[5]; m->m_pkthdr.flowid += eh->ether_shost[0] + eh->ether_shost[1] + eh->ether_shost[2] + eh->ether_shost[3] + eh->ether_shost[4] + eh->ether_shost[5]; не оно ли это? Или там есть какая-то особая магия о которой мы не знаем? Поделитесь... Похоже что оно.
maxx Опубліковано: 9 травня, 2012 Опубліковано: 9 травня, 2012 m->m_flags |= M_FLOWID; m->m_pkthdr.flowid = eh->ether_dhost[0] + eh->ether_dhost[1] + eh->ether_dhost[2] + eh->ether_dhost[3] + eh->ether_dhost[4] + eh->ether_dhost[5]; m->m_pkthdr.flowid += eh->ether_shost[0] + eh->ether_shost[1] + eh->ether_shost[2] + eh->ether_shost[3] + eh->ether_shost[4] + eh->ether_shost[5]; не оно ли это? Или там есть какая-то особая магия о которой мы не знаем? Поделитесь... Похоже что оно. А не соблаговолит ли, глубокоуважаемых джин, кинуть уже пропатченными исходниками, кторые дают такие чудесные результаты, ибо - либо я что-то неправильно делаю, либо что-то пошло не так. Но даже пропачив if_ethersubr.c и дрова игбы, картинко не поменялась. Заранее благодарны, с нас коньяк если будете у нас на колыме.
adeep Опубліковано: 10 травня, 2012 Опубліковано: 10 травня, 2012 А не соблаговолит ли, глубокоуважаемых джин, кинуть уже пропатченными исходниками, кторые дают такие чудесные результаты, ибо - либо я что-то неправильно делаю, либо что-то пошло не так. Но даже пропачив if_ethersubr.c и дрова игбы, картинко не поменялась. Заранее благодарны, с нас коньяк если будете у нас на колыме. Было бы время сделать все полностью не давал бы туманных ответов, а выкинул бы патч) А так увы, более ничего не имеем. Ежели у вас есть понимающие люди, можем списаться и покумекать вместе.
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВхід
Уже зарегистрированы? Войдите здесь.
Войти сейчас