В Вашем сл. pkt. (тут всё правильно), едиственное, не коментируйте, а полностью перепишите всё выражение с нужным фрагментом. Если и это не поможет - маны по SED, я сам в этих sed и awk разбираюсь как баран в апельсинах...
Printable View
Подскажите, пожалуйста, ответ на пару вопросов.
1. Исходя из вот этого
# nShaper v0.4.4.2 from 27-DEC-2010
#
# Author: Nikita Popov
# Little Code tunning by Iguana
# ...
# This script configures Linux routing service using HTB classes and
# SFQ queues.
и вот этого
QUEUE="sfq limit 256 depth 256 quantum $MTU hash dst"
В скрипте используются SFQ очереди. Однако параметры очереди говорят - что очередь - ESFQ.
Почему в переменную QUEUE занесено sfq, а не esfq ?
2. Каков результат работы скрипта?
Если в сети появляется второй (третий и т.д.) комп то полоса делится между ними поровну вне зависимости от загрузки канала каждым? Или если остальные компы не используют "свою" часть канала полностью, то она отдается тому кто "грузит канал" больше. Иными словами, происходит ли заимствование полосы?
Заранее спасибо за ответ :)
Да, очереди, действительно ESFQ
Это вопрос к тем кто пишет Большой Линух, Энтузиасты портирующи всё это дело на рутер, врядли смогут объяснить почему так получилось ;)Quote:
Почему в переменную QUEUE занесено sfq, а не esfq ?
Заимствование неиспользованной полосы происходит и не только в пределах одного приоритетного класса, а также и из др. приоритетных классов, если там полоса неиспользуется.Quote:
2. Каков результат работы скрипта?
Если в сети появляется второй (третий и т.д.) комп то полоса делится между ними поровну вне зависимости от загрузки канала каждым? Или если остальные компы не используют "свою" часть канала полностью, то она отдается тому кто "грузит канал" больше. Иными словами, происходит ли заимствование полосы?
Заранее спасибо за ответ :)
Судя по разным man`ам как раз в Большом Линухе должно указываться правильное наименование очереди - esfq, поэтому и задал вопрос, из-за чего здесь sfq прописано. Ну да ладно, буду переносить на OpenWRT - тогда и выяснится окончательно...
Интересная и красивая альтернатива классическим решениям, взял на заметку.
Спасибо за ответ.
не могу nShaper настроить для RT-N16 (r2888). У меня сетка Dual access. Доступ в сетку провайдера NBN через MAN (статический адрес) на 100Мбс; в инет - PPoE (5Мб на закачку, на выгрузку -до 22 Мб. Это по данным speedtest). В сетке провайдера есть локальные ресурсы (DC++), качается реально до 80-90Мб. Маршрутизация вся производится у провайдера, т.е. таблица на роутере практически пустая:
Интерфейсы роутера:PHP Code:Destination Gateway Genmask Flags Metric Ref Use Iface
212.1.254.122 * 255.255.255.255 UH 0 0 0 WAN ppp0
10.149.8.0 * 255.255.255.0 U 0 0 0 WAN vlan2
192.168.1.0 * 255.255.255.0 U 0 0 0 LAN br0
default 212.1.254.122 0.0.0.0 UG 0 0 0 WAN ppp0
default 10.149.8.253 0.0.0.0 UG 1 0 0 WAN vlan2
в nShaper указал такие настройки:PHP Code:br0 Link encap:Ethernet HWaddr 48:5B:39:5C:77:5C
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:5597 errors:0 dropped:0 overruns:0 frame:0
TX packets:6893 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:830664 (811.1 KiB) TX bytes:3569349 (3.4 MiB)
eth0 Link encap:Ethernet HWaddr 48:5B:39:5C:77:5C
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:25124 errors:0 dropped:0 overruns:0 frame:0
TX packets:11868 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:5061365 (4.8 MiB) TX bytes:4486229 (4.2 MiB)
Interrupt:4 Base address:0x2000
eth1 Link encap:Ethernet HWaddr 48:5B:39:5C:77:5C
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:140539
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:3 Base address:0x1000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MULTICAST MTU:16436 Metric:1
RX packets:1 errors:0 dropped:0 overruns:0 frame:0
TX packets:1 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:100 (100.0 B) TX bytes:100 (100.0 B)
ppp0 Link encap:Point-to-Point Protocol
inet addr:46.73.36.9 P-t-P:212.1.254.122 Mask:255.255.255.255
UP POINTOPOINT RUNNING MULTICAST MTU:1492 Metric:1
RX packets:6795 errors:0 dropped:0 overruns:0 frame:0
TX packets:4356 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:2848253 (2.7 MiB) TX bytes:754049 (736.3 KiB)
vlan1 Link encap:Ethernet HWaddr 48:5B:39:5C:77:5C
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:5597 errors:0 dropped:0 overruns:0 frame:0
TX packets:6893 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:853054 (833.0 KiB) TX bytes:3596921 (3.4 MiB)
vlan2 Link encap:Ethernet HWaddr 00:02:44:6E:D6:53
inet addr:10.149.8.66 Bcast:10.149.8.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:19527 errors:0 dropped:0 overruns:0 frame:0
TX packets:4975 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:3756079 (3.5 MiB) TX bytes:889308 (868.4 KiB)
Правила у меня такие:PHP Code:WAN_IF=ppp0
LAN_IF=br0
WAN_DN_RATE=90000
WAN_UP_RATE=90000
WAN_ZONES="inet piring"
ZONE_PATH="/opt/etc/nshaper/ip_%ZONE%.lst"
WAN_ZONES_DN_RATE="4700 85000"
WAN_ZONES_UP_RATE="15000 85000"
nShaper стартует без проблем, но статус показывает какую-ту ерунду, счетчики практически на нулях:PHP Code:# set rules for time-critical queue (both users' and router's traffic)
setrule proto icmp prio 10 queue 0 # ICMP
setrule port 53 queue 0 # DNS
setrule short flag ack queue 0 # TCP ACK
setrule short flag syn queue 0 # TCP SYN
setrule short flag rst queue 0 # TCP RST
# extract users' traffic using destiation ip
LAN="$LAN_IP/$LAN_MASK"
# set rules for high-priority queue
# only router's traffic remains unfiltered here
#setrule lan ip $LAN afc 4 queue 1 # assured forward GOLD class
# (af4x obsoletes TOS=10)
setrule port 22 queue 1 # router's SSH
setrule port 8080 queue 1 # router's WEB server
setrule lan ip $LAN wan port 554 queue 1 # MMS/RealMedia
setrule lan ip $LAN wan port 1755 queue 1 # MMS
setrule lan ip $LAN wan port 1935 queue 1 # RTMP/Flash
setrule lan ip $LAN wan port 5060 queue 1 # SIP
setrule lan ip 192.168.1.2 wan queue 1 # Zyxel-VoIP Gate
# set rules for middle-priority queue
setrule lan ip $LAN afc 3 queue 2 # assured forward SILVER class
setrule lan ip $LAN wan port 80 queue 2 # HTTP
setrule lan ip $LAN wan port 443 queue 2 # HTTPS
setrule lan ip $LAN wan port 5190 queue 2 # AIM,ICQ
setrule lan ip $LAN wan port 5222 queue 2 # Google Talk
setrule lan ip $LAN wan port 5223 queue 2 # QIP
# set rules for low-prority queue
setrule lan ip $LAN queue 3 # all remaining users' traffic
# move all other router's traffic (such as P2P) to lazy queue
setrule lan all queue 4 # all other traffic to router
это было снято в момент speedtest.PHP Code:nShaper status Чтв Апр 14 17:30:28 MSD 2011
Ctrl-C to exit
-Zones- -Download rate- -Received- -Upload rate- -Sent-
bit/s pps Bytes bit/s pps Bytes
Total 136 0 2.06k 72 0 2.20k
inet 48 0 751 32 0 1.63k
Crit 48 0 477 0 0 454
Prio 0 0 0 0 0 0
Web 0 0 0 24 0 1008
Other 0 0 0 0 0 210
Lazy 0 0 274 0 0 0
piring 72 0 1.32k 16 0 582
Пиринговые зоны прописаны такие:Помогите, плз, где что я неверно делаю.PHP Code:10.0.0.0/8
46.72.0.0/15
79.111.0.0/16
79.120.0.0/17
82.148.6.0/24
82.148.13.0/24
89.20.128.0/19
89.191.224.0/21
89.222.228.0/24
93.182.0.0/18
95.220.0.0/15
172.16.0.0/12
192.168.0.0/16
212.1.224.0/23
213.141.128.0/19
Точно! Спасибо за подсказку. Теперь думаю, что для меня лучше fastNAT иди шейпер.
Дополнил: Поэкспериментировал немного и вовсе не увидел влияния FastNAT на скорость закачки с локальных (в пиринге) ресурсов (мой аппарат и провайдер - постом выше). С инета не пробовал, может попозже.
Включал/выключал FastNAT командой nvram set misc_fastnat_x=1 / 0 (+commit и reboot, конечно). Что-то не так делал?
При включенном шейпере (и, разумеется, выключенном FastNAT) загрузка CPU у меня 100%, скорость - 7,3 МБ/с. Без шейпера ~85% и 9,4 МБ/с (в пике даже до ~10.5). Решил, что эта потеря скорости для меня совершенно не критична, буду шейпить, возможно, кулер на роутер только добавить стоит.
Еще обратил внимание, что запуск nsahepr status совершенно не влияет ни на скорость загрузки ни на загрузку CPU.
Это у меня все так хорошо или я неверно что-то делал?
В любом случае, авторам nShaper - большое спасибо!
У меня каждый раз при выполнении этого скрипта падает cron.
вот кусок лога
........
........
Apr 18 01:00:01 /opt/sbin/cron[7864]: (partner) CMD (run-parts /opt/etc/cron.5mins )
Apr 18 01:00:06 /opt/sbin/cron[7921]: (CRON) STARTUP (V5.0)
Apr 18 01:01:01 /opt/sbin/cron[7925]: (partner) CMD (run-parts /opt/etc/cron.hourly )
Apr 18 01:01:01 partner: === nShaper work in Night UNLIM mode ===
Apr 18 01:01:02 /opt/sbin/cron[8060]: (CRON) DEATH (can't lock /opt/var/run/cron.pid, otherpid may be 7921: Resource temporarily unavailable)
Apr 18 02:47:12 ntp client: Synchronizing time with 217.116.128.9...
........
........
затем утром ручками запустил cron и опять до переключения с ночного на дневной режим работы шейпера
Apr 18 07:18:18 /opt/sbin/cron[9009]: (CRON) STARTUP (V5.0)
Apr 18 07:20:01 /opt/sbin/cron[9014]: (partner) CMD (run-parts /opt/etc/cron.5mins )
Apr 18 07:20:06 /opt/sbin/cron[9071]: (CRON) STARTUP (V5.0)
.........
.........
Apr 18 10:00:05 /opt/sbin/cron[11469]: (CRON) STARTUP (V5.0)
Apr 18 10:01:01 /opt/sbin/cron[11473]: (partner) CMD (run-parts /opt/etc/cron.hourly )
Apr 18 10:01:01 partner: === nShaper work in Day BALLANCE mode ====
Apr 18 10:01:02 /opt/sbin/cron[11608]: (CRON) DEATH (can't lock /opt/var/run/cron.pid, otherpid may be 11469: Resource temporarily unavailable)
Apr 18 10:47:12 ntp client: Synchronizing time with 217.116.128.9...
...........
...........
Где и что смотреть? Логи могу показать и все остальное что надо будет
SerGri помогите пожалуйста разобраться с cron-ом и запуском вашего скрипта. После каждого переключения с дневного на ночной и наоборот режима работы nshaper-a у меня падает cron с записью в логе
Apr 19 01:01:02 /opt/sbin/cron[18058]: (CRON) DEATH (can't lock /opt/var/run/cron.pid, otherpid may be 17920: Resource temporarily unavailable)
Подскажите пожалуйста какие настройки шейпера нужно поменять чтобы он корректно работал, если интернет мой роутер берет не по vpn как раньше, а с настройками на wan по умолчанию - получаю их автоматом от провайдера.
Ну ей богу не знаю... :confused:
Очень странно...:confused:
Скажите, а у Вас есть другие скрипты работающие по крону?
Может, с кроном, или с кронтабом какой косяк...
По диагностике похоже что крон не может найти свой PID-файл и из-за этого дохнет. :)
Посмотрите, где у Вас реально находится cron.pid варианты:
/opt/var/run/
/var/run/
У Вас WAN_IF=ppp0 ?
Если теперь вы получаете прямой IP от провайдера, то
WAN_IF=vlan2 (если у Вас RT-N16)
Если у вас не RT-N16, какой нибудь другой роутер, то
посмотрите командой ifconfig на каком интерфейсе адрес выданный от провайдера (vlan0, vlan1, .... vlan10).
Или проще, запостите сюда вывод команды ifconfig.;)
Вот обновил прошивку и старый мой nshaper_0.4.3_HD перестал работать.
Обновил до новой версии. Ваша FD версия работает, но для моего канала некорректно.
Очень прошу сделайте для HalfDuplex!
Я тут попробовал сделать HD версию по шаблону от предыдущей версии - вроде работает, но по команде nshaper status:
PS:Code:$ nshaper status
Using Night UNLIM mode!
Loading...
nShaper is not running. Sorry...
Вложение удалено, чтобы не вводить в заблуждение форумчан. ;)
Для того, чтоб заработала Ваша редакция необходимо внести изменения в сл. строки (у меня, при сравнении 2-х файлов получилась 760 и далее):
наCode:/Sent.*rate/!{s/Sent(.+)\)/Sent\1\)\n rate 0bps 0pps/}
/pps/!{s/Sent(.*)rate ([A-z0-9]*)/Sent\1rate \2 0pps/}
s/.*htb [0-9]*:(.*) parent [0-9]*:([0-9]*) .*prio ([0-9]*) rate ([0-9A-z]*) ceil ([0-9A-z]*).*Sent ([0-9]*) bytes ([0-9]*) pkts.*rate ([A-z0-9]*) ([A-z0-9]*)pps.*/'"${FMT}/"'
либо на (как сделано это в моих правках):Code:/Sent.*rate/!{s/Sent(.+)\)/Sent\1\)\n rate 0bit 0pps/}
/pps/!{s/Sent(.*)rate ([A-z0-9]*)/Sent\1rate \2 0pps/}
s/.*htb [0-9]*:(.*) parent [0-9]*:([0-9]*) .*prio ([0-9]*) rate ([0-9A-z]*) ceil ([0-9A-z]*).*Sent ([0-9]*) bytes ([0-9]*) pkt.*rate ([A-z0-9]*) ([A-z0-9]*)pps.*/'"${FMT}/"'
(исправлять надо первую и третью строку ;))Code:
/Sent.*rate/!{s/Sent(.+)\)/Sent\1\)\n rate 0'$rte' 0pps/}
/pps/!{s/Sent(.*)rate ([A-z0-9]*)/Sent\1rate \2 0pps/}
s/.*htb [0-9]*:(.*) parent [0-9]*:([0-9]*) .*prio ([0-9]*) rate ([0-9A-z]*) ceil ([0-9A-z]*).*Sent ([0-9]*) bytes ([0-9]*) pk'$pkt'.*rate ([A-z0-9]*) ([A-z0-9]*)pps.*/'"${FMT}/"'
P. S. Дабы не вводить форумчан в заблуждение - удалите, пожалуйста, аттач из вашего сообщения...