Каждый кто занимается администрированием серверов , знает что нет ничего лучше чем сетевое оборудование компании Intel. Благодаря им система держит более высокую нагрузку, т.к. чип сетевой карты сам обрабатывает многие операции не привлекая системные ресурсы, и думаю каждый уважающий себя админ, хоть раз в жизни слышал про драйвера от Яндекса для моей любимой фряшки.
Чем же они хороши? Тем что они ориентированны на работу в много процессорных системах и более оптимально используют процессор.
Скачать можно отсюда
Начнемс (для FreeBSD 8.2):
# wget http://people.yandex-team.ru/~wawa/e1000-7.0.5-RELENG8-yandex-1.36.2.17.2.18.tar.gz
Распакуем:
# tar xvfz e1000-7.0.5-RELENG8-yandex-1.36.2.17.2.18.tar.gz
и скопируем вместо стандартных дров:
# cd e1000-7.0.5-RELENG8-yandex-1.36.2.17.2.18
# cp * /usr/src/sys/dev/e1000
теперь можно пересобрать ядро, плюс ко всему мне понадобилось добавить в него pf и ipfw, что собственно говоря и сделаю :))
У меня amd64 платформа:
# cd /usr/src/sys/amd64/conf/
# cp GENERIC ROUTER
# ee ROUTER
и в него добавляем:
для ipfw и даминета (шейпер)
options IPFIREWALL
options IPDIVERT
options IPFIREWALL_FORWARD
options DUMMYNET
для pf и altq
#ALTQ
options ALTQ
options ALTQ_CBQ # Class Bases Queuing (CBQ)
options ALTQ_RED # Random Early Detection (RED)
options ALTQ_RIO # RED In/Out
options ALTQ_HFSC # Hierarchical Packet Scheduler (HFSC)
options ALTQ_PRIQ # Priority Queuing (PRIQ)
options ALTQ_NOPCC # Required for SMP build
#PF
device pf
device pflog
device pfsync
плюс ко всему, я поубирал лишнее из ядра, то чем думаю никогда не буду пользоваться.
Займемся сборкой ядра:
# config ROUTER
Kernel build directory is ../compile/ROUTER
Don't forget to do ``make cleandepend && make depend''
топаем в ../compile/ROUTER и собираем все это дело:
# cd ../compile/ROUTER
# make cleandepend && make depend
после депендов прописываем следующие команды и идем пить чай, т.к. это займет немного времени:
# make
# make install
как только все собралось, ребутим машинку и наслаждаемся :))
# reboot
P.S. Если вы тоже добавляли в ядро фаервол, то было бы неплохо иметь доступ к серверу по ipmi или физический, т.к. после ребута если вы не прописали в rc.conf путь к правилам или не поставили тип фаерволла open, доступ по ssh будет отсутсвовать!
И вообще все опыты с ядром Вы делаете на свой страх и риск, то что я описал выше делалось на реальном тазике, и после ребута все поднялось нормально )))) если что-то у вас не получилось, прошу в коменты, только без наездов :))))
27 комментариев. Оставить новый
а дрова от Яши стоят?
А у меня проблема , у меня стоит 2 портовая интел карта и при больших нагрузках падает скорость ,
а имеено когда трафик поднимается где то до 1,4 гигабита и после скорость падает
винты не нагружены в свап тоже не переходит , если только не считать пару кб.
веб сервер nginx
в чем может быть проблема ?
трафа маловато конечно, на таком тазике можно в разы больше прогнать, у мя чуть больше бегает, пока что 500-600 мегабит, но и ресурсов пока что хватает на серваке, нагрузка всего 10-13 процентов
Ну тут как бы тоже не слабо — 2 2-ядерных Ксеона на 3 Ггц и 4 Гб памяти. А трафа гоняем до 300 Мбит всего, правда здесь и шлюз, и нат, и биллинг с шейпером
решать тебе)) или твоему руководству, много трафа надо гонять? не забудь про нормальный процик 😉 а то какбэ без норм процика много каши не переваришь)))
Ну значит придется покупать сервер с PCI-Express и ставить igb-карточки
вполне возможно))
Как раз так и делал. Удалял все содержимое папки, и заливал яндексовское. Скорей всего яндекс не менял ничего в интеловских драйверах для моей карточки. А я губу раскатал )))
ядро новое стоит, я пересобирал ядро именно на 8.2, и все было норм, попробуй папку /usr/src/sys/dev/e1000 почистить, удалить все нах, или перенести куда-нить, а потом залить дрова яндекса, и пересобрать ядро, хотя вполне возможно что твоя сетевка ими не поддерживается, но надо попробовать
FreeBSD euronet.local 8.2-RELEASE FreeBSD 8.2-RELEASE #0: Wed Jun 8 22:01:37 EEST 2011 [email protected]:/usr/src/sys/amd64/compile/NODENY_EM amd64
новое, с Intel Pro/1000 MT Dualport Server Adapter не работал пока что, может не поддерживается дровами, хотя должно, надо спрашивать у разработчика дров
сбрось вывод uname -a
make install разве не новое ядро устанавливает?
по идее должны схаваться драйверами, надо искать суть проблемы, а ядро точно новое устанавливаешь?
Intel Pro/1000 MT Dualport Server Adapter
а что за сетевка у тебя?
Бред какой-то. Нифига не получается — Intel (R) PRO/1000 Legacy Network Connection 1.0.1 и хоть ты его тресни.
7.1.9 это последний драйвер интела, на сколько мне известно, у Яши пока что 7.0.5
я вообще делаю так
на примере моей статьи, грохаю папку ../compile/ROUTER
потом по новой
config ROUTER
и далее по отработанной схеме,
make cleandepend && make depend
make
make install
и все работает
А может стоит удалить в compile папки от старых сборок ядер? И удалить в /usr/src/sys/dev папку «em», оставив только «e1000» от Яндекса? Кстати, последний драйвер вроде уже 7.1.9
интересненько, менял содержимое папки e1000? если да, то все должно было пройти нормально, лично проверял когда собирал себе их
Значит не поставились. Смущает в сорцах наличие двух папок — «em» и теперь вот еще «е1000». Заменил содержимое папок из папки Яндекса — пересобрал ядро, один фиг пишет Intel (R) PRO/1000 Legacy Network Connection 1.0.1 — теперь даже не 1.0.3
для последних дров яндекса будет следующее:
Intel(R) PRO/1000 Network Connection 7.0.5.Yandex
А как узнать, что дрова поставились?
cat /var/run/dmesg.boot | grep em0
em0:
но на этом сервере не стоят драйвера Яндекса
Intel(R) PRO/1000 Network Connection относится к Intel PRO/1000 Gigabit Ethernet Family
dmesg | grep em0 — у вас что показывает?
Движок не пропускает символы «больше/меньше» 🙂
Имелось в виду вот такое — Intel(R) PRO/1000 Legacy Network Connection 1.0.3
даже если установить драйвера от Яндекса, то все равно будет em0
em это идентификатор Intel PRO/1000 Gigabit Ethernet Family
даже в конфиге ядра если посмотреть, то написано:
device em # Intel PRO/1000 Gigabit Ethernet Family
em0: — это значит, что дрова НЕ от Яндекса?