Jump to content
Калькуляторы

NAS на FreeBSD 8.2, mpd5, ipfw шейпер - низкая скорость ipfw - какие-то странности

Здраствуйте! Есть 4 NAS на

FreeBSD ppp-XXXXXXXXXXXXXXX 8.3-RELEASE FreeBSD 8.3-RELEASE

3 работают нормально, на 1-ом странности. Ipfw shaper - настроен на 70 мбит/с, получаю около 20 всего, на остальных все нормально с такими же настройки. Все 4 машины получены путем тупого копирования винтов, и правления конфигов сети/интерфесов шейпера. Сетевая 4-х портовая 82576. проц Xeon 3.4 ГГЦ E3-1240 V2. Мать asus P8B-E. top -PSH показывает кучу свободных ресурсов. netstat -w1 тоже криминала не показывает. Как только убераю шейпер - скорость возрастает до 150-170 мбит/с. Ошибок на интерфейсе нет, на коммутаторе тоже. Куда дальше смотреть не знаю! Есть у кого идеи?

Edited by breusovok

Share this post


Link to post
Share on other sites

Переходите на 10-ку STABLE.

+ покажите свой

netstat -m
cat /etc/sysctl.conf
cat /boot/loader.conf

Share this post


Link to post
Share on other sites

Да вроде и 8.3 работает без проблем на остальных серверах.

netstat -m
17504/8746/26250 mbufs in use (current/cache/total)
17491/6323/23814/512000 mbuf clusters in use (current/cache/total/max)
17491/6317 mbuf+clusters out of packet secondary zone in use (current/cache)
0/247/247/12800 4k (page size) jumbo clusters in use (current/cache/total/max)
0/0/0/6400 9k jumbo clusters in use (current/cache/total/max)
0/0/0/3200 16k jumbo clusters in use (current/cache/total/max)
39375K/15820K/55196K bytes allocated to network (current/cache/total)
0/0/0 requests for mbufs denied (mbufs/clusters/mbuf+clusters)
0/0/0 requests for jumbo clusters denied (4k/9k/16k)
0/0/0 sfbufs in use (current/peak/max)
0 requests for sfbufs denied
0 requests for sfbufs delayed
0 requests for I/O initiated by sendfile
0 calls to protocol drain routines

 

cat /etc/sysctl.conf
kern.maxfiles=204800
kern.maxfilesperproc=200000
kern.maxvnodes=200000

kern.ipc.somaxconn=16384
kern.ipc.nmbclusters=512000
kern.ipc.maxsockbuf=84886080


net.inet.udp.recvspace=20971520
net.inet.udp.checksum=0
net.local.dgram.recvspace=20971520
net.local.stream.recvspace=20971520

net.inet.tcp.delayed_ack=0
net.inet.tcp.rfc1323=1

# Security
net.inet.ip.sourceroute=0
net.inet.icmp.maskrepl=0
net.inet.icmp.log_redirect=0
net.inet.icmp.drop_redirect=1
net.inet.tcp.drop_synfin=1

net.link.ether.inet.max_age=3600
net.inet.tcp.blackhole=2
net.inet.udp.blackhole=1
net.inet.ip.redirect=0
net.inet.ip.random_id=1
net.inet.icmp.icmplim=4096
net.inet.udp.log_in_vain=0

net.local.stream.sendspace=10485760
net.inet.tcp.recvspace=10485760
net.inet.tcp.sendspace=10485760


net.local.stream.sendspace=10485760
net.inet.tcp.recvspace=10485760
net.inet.tcp.sendspace=10485760


net.inet.ip.portrange.first=1024
net.inet.ip.portrange.last=65535
net.inet.ip.portrange.randomized=0

net.inet.ip.ttl=253

# Lessen max segment life to conserve resources
# ACK waiting time in miliseconds (default: 30000 from RFC)
net.inet.tcp.msl=5000

# Explicit Congestion Notification (see http://en.wikipedia.org/wiki/Explicit_C
net.inet.tcp.ecn.enable=1

# IPFW dynamic rules and timeouts tuning
# Increase dyn_buckets till net.inet.ip.fw.curr_dyn_buckets is lower
net.inet.ip.fw.dyn_buckets=65536
net.inet.ip.fw.dyn_max=65536
net.inet.ip.fw.dyn_ack_lifetime=120
net.inet.ip.fw.dyn_syn_lifetime=10
net.inet.ip.fw.dyn_fin_lifetime=2
net.inet.ip.fw.dyn_short_lifetime=10

# Flowtable - flow caching mechanism
# Useful for routers
#net.inet.flowtable.enable=1
#net.inet.flowtable.nmbflows=65535


security.bsd.see_other_uids=0

net.inet.ip.fw.one_pass=1
#net.inet.carp.preempt=1
net.inet.ip.same_prefix_carp_only=0

net.inet.tcp.nolocaltimewait=1


net.graph.maxdgram=8388608
net.graph.recvspace=8388608

net.inet.ip.dummynet.hash_size=2048

# Experimental
net.inet.ip.dummynet.io_fast=1
net.inet.ip.fastforwarding=1
net.inet.ip.dummynet.pipe_slot_limit=1000

# isr tuning
net.isr.direct=0
net.isr.direct_force=0
net.route.netisr_maxqlen=4096
net.inet.ip.intr_queue_maxlen=10240


# em tuning
dev.em.1.rx_int_delay=200
dev.em.1.tx_int_delay=200
dev.em.1.rx_abs_int_delay=4000
dev.em.1.tx_abs_int_delay=4000
dev.em.1.rx_processing_limit=4096
#dev.em.0.stats=1


dev.em.2.rx_int_delay=200
dev.em.2.tx_int_delay=200
dev.em.2.rx_abs_int_delay=4000
dev.em.2.tx_abs_int_delay=4000
dev.em.2.rx_processing_limit=4096





# Increase max command-line length showed in `ps` (e.g for Tomcat/Java)
# Default is PAGE_SIZE / 16 or 256 on x86
# For more info see: http://www.freebsd.org/cgi/query-pr.cgi?pr=120749
kern.ps_arg_cache_limit=4096


# Turn off receive autotuning
#net.inet.tcp.recvbuf_auto=0

# Note from commit http://svn.freebsd.org/base/head@211031 :
# For systems with RAID volumes and/or virtualization envirnments, where
# read performance is very important, increasing this sysctl tunable to 32
## or even more will demonstratively yield additional performance benefits.
vfs.read_max=32


# Should be increased when you have A LOT of files on server
# (Increase until vfs.ufs.dirhash_mem becomes lower)
#vfs.ufs.dirhash_maxmem=67108864

kern.corefile="/tmp/%U.%N.core"
kern.coredump=1


# FOR TEST
#sysctl net.inet.flowtable.enable=0

# IPv6
net.inet6.ip6.redirect=0
#kern.geom.part.check_integrity=0

 

 cat /boot/loader.conf
net.isr.maxthreads=8

 

Даст ли переход на 10-ку прирост в производительности? не потеряю ли в стабильности?

Share this post


Link to post
Share on other sites

Еще есть

net.isr.dispatch

net.link.ifqmaxlen=10240

net.inet.tcp.tcbhashsize=524288

и поиграйтесь с режимами ACPI.

Edited by vlad11

Share this post


Link to post
Share on other sites

HT случаем не включен?

У меня похожую ситуацию создавал, пока в БИОСе не вырубил.

Share this post


Link to post
Share on other sites

HT случаем не включен?

У меня похожую ситуацию создавал, пока в БИОСе не вырубил.

Есть такое, включен

 

sysctl net.isr.dispatch
sysctl: unknown oid 'net.isr.dispatch'

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

Edited by breusovok

Share this post


Link to post
Share on other sites

sysctl kern.eventtimer

sysctl kern.timecounter

что показывают?

Подозреваю что на хороших тазиках HPET а на проблемном что то другое.

Share this post


Link to post
Share on other sites

Нет ни того, ни другого.

Edited by breusovok

Share this post


Link to post
Share on other sites

Хм. Новые странности. После отключения HT фряха падает в kernel panic. Включаю HT- грузится нормально, выключаю - падает где-то на этапе инициализации сети? Как с этим бороться? переходить на 10 версию? переустанавливать текущую версию?

Share this post


Link to post
Share on other sites
0/247/247/12800 4k (page size) jumbo clusters in use (current/cache/total/max)

Плохо крутили

 

kern.ipc.nmbjumbop=262144 # Maximum number of mbuf page size jumbo clusters allowed. pagesize(4k/8k)

kern.ipc.nmbclusters=262144 # Maximum number of mbuf clusters allowed // netstat -m

kern.ipc.nmbjumbo9=262144 # Maximum number of mbuf 9k jumbo clusters allowed

kern.ipc.nmbjumbo16=262144 # Maximum number of mbuf 16k jumbo clusters allowed

Share this post


Link to post
Share on other sites

прикрутил. про вторую строчку ругнулось, остальное прошло. Скорость не поменялась. Грешу все -таки на НТ, действительно это единственный сервер с Нт, на остальных нет.

Share this post


Link to post
Share on other sites

Поимитирую Saab:

 

В соседней теме фрю поменяли на линукс - и все подземные стуки решились :)

Share this post


Link to post
Share on other sites

c accel-ppp у меня как-то не сложилось, демон авторизации биллинга падал... полтора года назад все эти 4 сервера были на ubuntu, да и pbr на линуксе сложнее реализовать. ipfw мне как-то ближе, чтоли.

Share this post


Link to post
Share on other sites

И еще вопрос возник, точнее теория. На материнской плате есть 4 интегрированных сетевых, на intel 82574 и 4-х ядерный процессор. На сколько я понимаю, там по одной очереди прерываний на порт. т.е. если я использую всего 2 порта - один в стороны клиентов, на котором pptp висит, а второй в сторону интернета, то и загружается у меня всего 2 ядра. А если из 4-х портов собрать 2 транка, один на вход, один на выход, то у меня будет по 2 очереди на вход, и 2 очереди на выход и будут задейстоваться все 4 ядра? Это так или я где-то ошибаюсь?

Share this post


Link to post
Share on other sites

Если руками прибить то будет.

Прерывания на отправку более легковесные в плане обработки.

Share this post


Link to post
Share on other sites

Поимитирую Saab:

 

В соседней теме фрю поменяли на линукс - и все подземные стуки решились :)

И появились другие. :)

Share this post


Link to post
Share on other sites

Вот-вот и я того же мнения!

Share this post


Link to post
Share on other sites

Поставил на тестовой машине freebsd-10.0 поставил mpd, настроил как на остальных. Пытаюсь подключится по пптп, не подключается. В тспдампе с интерфейса, где радиус видно что mpd даже не пытется подключится к радиус серверу. У 10-ой версии есть какие-либо особенности работы с mpd5?

Share this post


Link to post
Share on other sites

Нет. Работает на 10-ке без проблем.

Конфиги от 9-ки перешли без переделок.

Edited by Hawk128

Share this post


Link to post
Share on other sites

И что же в итоге было?

Share this post


Link to post
Share on other sites

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

 

Сейчас ради чистоты эксперемента качаю 8.3, поставлю, попробую сделать тоже самое

Share this post


Link to post
Share on other sites

На 8.3 тоже самое. Есть мысль что это каким-то образом связано с тем, что сервак поднят на виртуалке. Удалось выяснить вот что: сравнивал дампы с рабочего сервера и с не рабочего. на рабочем серваке клиент после challenge отвечает response c именем пользователем, а на не рабочем клиент response не отсылает, проверено на нескольких клиентах. Почему - для меня загадка.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this