Jump to content
Local
Sign in to follow this  
LV10

kpps в Linux

Recommended Posts

Господа, помогайте.

всегда старался юзать freebsd, пришло время глубоко осваивать linux

 

как посмотреть packets per second в Linux, в debian в частности?

есть какая-то альтернатива freebsd-шной: netstat -bdhI $iface 1?

 

дабы в реалтайме смотреть kpps + траф в мб/мбитах?

 

ifstat, iptraf, bmon, vnstat

все не то

 

trafshow не предлагать

 

спасибо.

Share this post


Link to post
Share on other sites

Самописный скрипт для /proc/net/dev

Со мной таким в своё время поделились как раз для этих задач. И я его немного подправил под себя, так сказать.

Share this post


Link to post
Share on other sites

Самописный скрипт для /proc/net/dev

Со мной таким в своё время поделились как раз для этих задач. И я его немного подправил под себя, так сказать.

 

не поделитесь в свою очередь?

Share this post


Link to post
Share on other sites

Обычно ложу в /sbin/show_pps

Запуск без аргументов показывает только физические интерфейсы без ppp. Запуск командой 'show_pps all' Выводит статистику по всем интерфейсам.

 

Плюс данного решения - не вызывается libpcap и не тратятся ресурсы на считывание и фильтрование трафика (у iptraf с этим явная проблема - при его включении сразу падает скорость на интерфейсе, который слушаем, плюс неактуальные данные выводятся).

 

#!/usr/bin/perl
$num=1;
if($ARGV[0] ne ""){
	$doiface=$ARGV[0];
}else{
	$doiface="";
}
while (1){
	system("/usr/bin/clear");
	open (FILE, "</proc/net/dev");
	while (<FILE>) {
			if($doiface eq ""){
					next if (/ppp/);
			}
			s/n//;
			if( /.*:.*/ ){
					($iface,$data)=split(/:/,$_);
					$iface=~s/s{1,}//g;
					(@tmp)=split(' ',$data);
					$traf{$iface}="@tmp[0] @tmp[8] @tmp[1] @tmp[9]";
			}
	}
	close(FILE);
	printf "%-8s %12s %12s %12s %10s %10s %10sn", "Iface","In (Kbit/s)","Out (Kbit/s)","Sum (Kbit/s)","In (pps)","Out (pps)","Sum (pps)";
	printf "---------------------------------------------------------------------------------n";
	foreach $rec (sort keys %traf){
			($b_in,$b_out,$p_in,$p_out)=split(' ',$traf{$rec});
			($old_b_in,$old_b_out,$old_p_in,$old_p_out)=split(' ',$old_traf{$rec});
			$c_b_in=sprintf("%.0f",($b_in-$old_b_in)*8/1024/$num);
			$c_b_out=sprintf("%.0f",($b_out-$old_b_out)*8/1024/$num);
			$c_p_in=$p_in-$old_p_in;
			$c_p_out=$p_out-$old_p_out;
			my $sumk = $c_b_in + $c_b_out;
			my $sump = $c_p_in + $c_p_out;
			printf "%-8s %12s %12s %12s %10s %10s %10sn",$rec, $c_b_in, $c_b_out, $sumk, $c_p_in, $c_p_out, $sump;
	}
	%old_traf=%traf;
	print "n";
	sleep $num;
}

Share this post


Link to post
Share on other sites

man sar :(

 

sar -n DEV 1

 

респект!

 

также спасибо за bwg-ng

Share this post


Link to post
Share on other sites

 

 

также спасибо за bwg-ng

Интересная штука. Характерно, что в фре она есть в портах...

Share this post


Link to post
Share on other sites

также спасибо за bwg-ng

в репах дебиана увидел только bwm-ng

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  

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By Archy_k
      Всем привет.
      Столкнулся с проблемой: не обновился сертификат SSL.
      Попробовал вручную запустить скрипт:
      # /etc/letsencrypt/certbot/certbot-auto renew Creating virtual environment... Installing Python packages... /opt/eff.org/certbot/venv/bin/python: No module named pip.__main__; 'pip' is a package and cannot be directly executed Traceback (most recent call last):   File "/tmp/tmp.qUAUXX5FHZ/pipstrap.py", line 177, in <module>     sys.exit(main())   File "/tmp/tmp.qUAUXX5FHZ/pipstrap.py", line 149, in main     pip_version = StrictVersion(check_output([python, '-m', 'pip', '--version'])   File "/usr/lib/python2.7/subprocess.py", line 544, in check_output     raise CalledProcessError(retcode, cmd, output=output) subprocess.CalledProcessError: Command '['/opt/eff.org/certbot/venv/bin/python', '-m', 'pip', '--version']' returned non-zero exit status 1 И вот какой ответ получаю.
      Подскажите пожалуйста, как с этим справиться...
      Сервер с Debian и nginx
      Заранее спасибо.
    • By Impulsee
      День добрый!
      Есть Связка Ubilling+NAS на freebsd. 
      Настроена на Виртуалке VMware. 
      Без VLAN все работает идеально. Трафик бегает, IP раздается, Денюжка зачисляется и т.д.
      Появилась потребность поднять 3 VLAN на локальном интерфейсе для Абонов. 
      Сделал: /etc/rc.conf
       
      Вывод /etc/firewall.conf 
       
       
      Сети, шаблоны NAS, в биллинге прописал. Абоны IP получают через VLAN. Интернет есть....
       
      НО:
       
      При отрицательном балансе на em1 все отключается мгновенно, и отправляет в кабинет. 
      А на VLAN сетях Интернет есть. 
       
      Кусок /var/stargazer/allconnect.log

       
      кусок /var/log/stargazer.log
       
       
      Подскажите, плиз, в какую сторону копать?
       
    • By vit75
      Есть сервак под Linux, который отключать не желательно, разве что на минуту, чтобы подключить второй хард. Как на работающем Линуксе, из под него, сделать его же копию на второй хард?
    • By Baneff
      Всем привет.
      Давно использую freebsd + ipfw + dummynet + kernel nat + ещё куча всякого разного и всё на одном серваке. Менять платформу не хочу - старый я уже для этого. Так вот. Нагрузка постепенно растёт, пора как-бы железо менять в очередной раз, но есть проблема. Всё в этой схеме прекрасно параллелится на мультиядерной системе. Всё, кроме старичка DUMMYNET. В очередной раз смотрю на процесс kernel{dummynet} и в очередной раз вижу конкретное узкое место во всй системе. Обойти невозможно, работает только в один поток и когда загрузка превышает 80-90% начинаются естественные проблемы. Все остальное работает с большим запасом по нагрузке. Вот и вопрос: как-то эту проблему удаётся решать? Чем шейпить юзеров, если не дамминетом? Или может появилась возможность как-то его параллелить? Или, возможно, какие-то новые методы позволяют как-то снизить нагрузку на дамминет? В документации появились некие новые варианты настроек CoDel, PIE, FQ-CoDel и FQ-PIE в дополнение к старым, может они помогут? Кто-то пробовал?
      Спасибо.
    • By FosterUA
      Сегодня на появилось
      cam status uncorrectable parity/crc error
      Reatrying command
      Write fpdma queued
       
      Подскажите что это ? Спасибо
×