Алексей Андриянов Опубликовано 25 ноября, 2009 (изменено) · Жалоба Скажу сразу - у меня бордер на VM, и мне он не нравится. Теперь уже понимаю, что скорее всего это извращение, но может быть, кто-то имеет похожий опыт, и поделится? У меня проблема с производительностью. Конфигурация системы: Xen hypervisor 3.4.3, 2 x Xeon E5405 (по 4 ядра, 2.00Ghz), сетевуха одна Broadcomm NetXtreme BCM5722 (драйвер tg3 последний). На предыдущем сервере была Intel-овская сетевуха с драйвером e1000e, и ситуация была та же самая. Трафика - 60 Мбит, 15-20kpps. ресурсы на бордере: paravirtOps-ядро 2.6.31 2 x vcpu 1G ram Задачи на бордере: nat (около 300 000 трансляций, упирается в ip_conntrack_max), шейпер HTB (около 1500 классов и фильтров, фильтры захешированы), 1 x BGP full-view, несильно развесистый iptables (около 20-30 match-ей, через которые проходит каждый пакет) netflow-сенсор на libpcap (softflowd) xentop говорит, что border ест от 90 до 150% cpu. И при этом еще 55% ест dom0, который ничем не занят, кроме бриджевания пакетов с физической сетевухи в vif виртуальной машины. top на самом бордере (виртуальном): top - 21:41:51 up 5 days, 12:50, 1 user, load average: 0.37, 0.52, 0.44 Tasks: 53 total, 2 running, 51 sleeping, 0 stopped, 0 zombie Cpu(s): 5.3%us, 3.7%sy, 0.0%ni, 71.0%id, 0.0%wa, 0.0%hi, 19.8%si, 0.2%st Mem: 793192k total, 767404k used, 25788k free, 0k buffers Swap: 524280k total, 380k used, 523900k free, 309604k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 30939 nobody 20 0 17692 16m 640 R 52 2.1 2012:32 softflowd 31024 nobody 20 0 4932 3620 600 S 10 0.5 205:28.23 softflowd 1799 quagga 20 0 158m 155m 1148 S 3 20.1 408:28.82 bgpd 1 root 20 0 1988 648 596 S 0 0.1 0:01.97 init Выключение softflowd картины радикально не меняет - в xentop на dom0 вместо 90% становится 65-70, и на dom0 по-прежнему 55. `mpstat 1` на боредере говорит так: 09:43:44 PM CPU %user %nice %sys %iowait %irq %soft %steal %idle intr/s 09:43:45 PM all 4.64 0.00 4.30 0.00 0.33 19.87 0.33 70.53 19579.00 09:43:46 PM all 7.85 0.00 4.10 0.00 0.00 18.77 0.00 69.28 18767.00 09:43:47 PM all 4.21 0.00 3.88 0.00 0.00 18.45 0.32 73.14 19104.00 09:43:48 PM all 4.26 0.00 3.28 0.00 0.00 19.34 0.33 72.79 18797.00 Бросается в глаза очень большое количество прерываний и 20% softirq. А на dom0 их еще больше: `mpstat 1` 09:50:11 PM CPU %user %nice %sys %iowait %irq %soft %steal %idle intr/s 09:50:12 PM all 0.00 0.00 0.13 0.00 0.00 1.02 0.76 98.09 35237.25 09:50:13 PM all 0.00 0.00 0.00 0.00 0.00 0.62 0.86 98.52 35934.65 09:50:14 PM all 0.00 0.00 0.00 0.00 0.00 1.49 0.62 97.89 36420.79 09:50:15 PM all 0.00 0.00 0.00 0.00 0.00 0.86 0.86 98.28 35048.51 09:50:16 PM all 0.00 0.00 0.00 0.00 0.00 0.99 0.87 98.14 35116.83 `cat /proc/interrupts` на dom0 (ненужное поскипал): CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7 1275: 1799227419 0 0 0 0 0 0 0 Phys-irq peth0 1321: 3439284801 0 0 0 0 0 0 0 Dynamic-irq vif13.0 Т.е., прерывания генерятся не только на каждый принятый пакет на сетевухе, но и на каждый принятый и на каждый переданный в вирт. интерфейс xen пакет. Подозреваю, что мои проблемы кроются в большом количестве прерываний из-за неэффективности работы драйверов xen с прерываниями, использовании единственной сетевухи на вход и выход и неэффективном способе снятия netflow. Я собираюсь переводить бордер на физическую машину с многопортовой сетевухой, и сомневаюсь - позволит ли это радикально уменьшить нагрузку? И был бы очень рад найти выход, чтобы оставить бордер на виртуальной машине. Как можете посоветовать прооптимизировать без перевода на физическую машину? Действительно ли проблемы именно в том, что я обозначил, или я не вижу очевидного? Кто как снимает netflow и сколько ресурсов у вас на это уходит? Заранее спасибо за ответы. Изменено 25 ноября, 2009 пользователем Алексей Андриянов Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
EvilShadow Опубликовано 25 ноября, 2009 · Жалоба Кто как снимает netflow и сколько ресурсов у вас на это уходит? http://ineu.su/blog/2008/09/27/optimalnyj-netflow-sensor/За год использования абсолютно никаких нареканий, юзерспейсовые сенсоры вспоминаю как страшный сон. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Алексей Андриянов Опубликовано 25 ноября, 2009 · Жалоба Кто как снимает netflow и сколько ресурсов у вас на это уходит? http://ineu.su/blog/2008/09/27/optimalnyj-netflow-sensor/За год использования абсолютно никаких нареканий, юзерспейсовые сенсоры вспоминаю как страшный сон. Я его пробовал, и у меня на нем ядро периодически падало. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
EvilShadow Опубликовано 25 ноября, 2009 · Жалоба Я его пробовал, и у меня на нем ядро периодически падало. Странно это. У меня без проблем работало на диапазоне ядер с 2.6.26 до 2.6.30, на обычных одиночных системах, в xen-виртуалках, в kvm-виртуалках... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
DemYaN Опубликовано 25 ноября, 2009 · Жалоба Домен у вас HVM? Интерфейс отдан гостевому домену через VT-d? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Алексей Андриянов Опубликовано 25 ноября, 2009 · Жалоба Странно это. У меня без проблем работало на диапазоне ядер с 2.6.26 до 2.6.30, на обычных одиночных системах, в xen-виртуалках, в kvm-виртуалках... Ну может и правда не из-за него. Там непонятно было, xentop говорил 100% и система не откликалась никак - не отвечала на пинги и на нажатия клавиш в консоли. Когда убрал ipt-netflow, вроде бы прошло. А раз вы пробовали снимать netflow с xen-виртуалок, там наверное, был и трафик серьезный? Не было проблем с прерываниями на каждый пакет, как у меня? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Алексей Андриянов Опубликовано 25 ноября, 2009 · Жалоба Домен у вас HVM? Интерфейс отдан гостевому домену через VT-d?Нет, паравиртуализация. Интерфейс отдан гостевому домену через bridge. То есть в конфиге написано vif = [ 'bridge=eth0' ] где eth0 - это мост, куда входит физическая сетевуха peth0. Через VT-d я не имею пока возможности отдать, т.к. на сервере сетевуха всего одна, а виртуальная машина с бордером - не единственная. Конечно, если это поможет, можно поставить доп. сетевуху и прокинуть через VT-d, но это требует HVM, а я читал, что это _гораздо_ медленнее паравиртуализации. У меня на соседнем xen-сервере windows xp крутится в hvm, тормозит жутко, так что я верю :) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
DemYaN Опубликовано 25 ноября, 2009 · Жалоба ИМХО получить более-менее пристойную скорость io-операций в гостевом домене можно только отдав ему в монопольное пользование устройство PS садить пограничник в vm тот еще экстрим :) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
EvilShadow Опубликовано 25 ноября, 2009 · Жалоба Странно это. У меня без проблем работало на диапазоне ядер с 2.6.26 до 2.6.30, на обычных одиночных системах, в xen-виртуалках, в kvm-виртуалках... Ну может и правда не из-за него. Там непонятно было, xentop говорил 100% и система не откликалась никак - не отвечала на пинги и на нажатия клавиш в консоли. Когда убрал ipt-netflow, вроде бы прошло. А раз вы пробовали снимать netflow с xen-виртуалок, там наверное, был и трафик серьезный? Не было проблем с прерываниями на каждый пакет, как у меня? Нет, мегабит по 40 на виртуалку. Это были pptp-сервера, которые жили на разных хост-системах. Но в последнее время все равно перевожу такие сервера на физические машины, на виртуалках оставляю то, что требует дублирования и изоляции - СУБД, почта и прочее. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
martin74 Опубликовано 26 ноября, 2009 · Жалоба имеет смысл держать vpn сервера в виртуалках? Я использую vmware esx для кластера виртуалок, почта, база, сайты - в виртуалках, впн сервера на сейчас - физические машины. Но их у меня 10 ;). Вот сижу и думаю, стоит попробовать увести их в виртуалку, или не надо.... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
EvilShadow Опубликовано 26 ноября, 2009 · Жалоба имеет смысл держать vpn сервера в виртуалках? Я использую vmware esx для кластера виртуалок, почта, база, сайты - в виртуалках, впн сервера на сейчас - физические машины. Но их у меня 10 ;). Вот сижу и думаю, стоит попробовать увести их в виртуалку, или не надо.... Системы, выполняющие сложные функции, живут в виртуалках с реплицированием корня каждой машины по drbd, дабы при смерти одной хост-системы можно было бы быстро завести их на другой. А ВПН-сервера взаимозаменяемы по определению и друг от друга в принципе не отличаются, поэтому при падении одного пользователи пойдут на другой. Имхо, единственный плюс впн-серверов в виртуалках - возможность живой миграции между хост-системами. Хотя на самом деле мне это пригодилось всего один-два раза, что не оправдывает издержек виртуализации на такие машинки. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
martin74 Опубликовано 26 ноября, 2009 · Жалоба Да, сторадж для esx кластера собран на двух машинах с 5-мы рейдами и drbd репликацией. Для меня плюс в впн на виртуалках - быстрое наращивание их количества. Хотя тут другой вопрос. 10 физических впн серверов тянут скажем 5-6к коннектов. Если на этом же железе подниму 20 впн серверов - количество коннектов увеличится? ;) PS. Вопрос в применении accel-pptpd не стоит, меня устраивает обычный pptpd, по крайней мере пока. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...