Главная страница


ru.unix.bsd

 
 - RU.UNIX.BSD ------------------------------------------------------------------
 From : Eugene Grosbein                      2:5006/1       07 Jan 2007  22:15:29
 To : Alexander Kolesnikoff
 Subject : Re: BSD 6.1 & polling
 -------------------------------------------------------------------------------- 
 
 05 янв 2007, пятница, в 21:43 KRAST, Alexander Kolesnikoff написал(а):
 
  >> В случае с iperf тут тормозом, как ни странно, стал клиент -
  >> iperf после каждого write вызывает gettimeofday, что даже на UP ядре
  >> и таймере ACPI-fast выливается в громадный оверхед в system time.
  >> Дергать таймер 80 тысяч раз в секунду довольно дорого на FreeBSD
  >> Есть какой-нибудь бенчмарк, который так не делает?
  AK>   ng_source ?
 
 Попробовал так.
 При помощи 'tcpdump -s0 -n -p -c1 -i fxp0 -w packet.raw src host $myip
 and udp port 5001' поймал один из тех пакетов, что шлет iperf.
 
 Размер данных UDP в нем 64 байта, плюс 20 байт заголовок UDP,
 плюс 8 байт заголовок IP, плюс 14 байт на ethernet, итого 106 байт.
 При помощи tail -c 106 packet.raw >packet.cap получил файл для ng_source.
 
 Сделал скрипт для измерения:
 
 #!/bin/sh
 
 ngctl mkpeer fxp0: source orphans output
 nghook fxp0:orphans input < packet.cap
 ngctl msg fxp0:orphans start 100000000
 sleep 60
 ngctl msg fxp0:orphans stop
 ngctl msg fxp0:orphans getstats
 ngctl shutdown fxp0:orphans
 
 Hа принимающей стороне (на сервере) сказал:
 
 ipfw add 5 allow udp from any to any in recv fxp0
 (другого UDP-трафика тут все равно нет).
 
 Запустил скрипт, он после окончания тестирования
 выводит накопленную статистику и обнуляет её (гашением ng_source).
 Hа сервере результат показывает мне ipfw show 5.
 
 В результате на клиенте:
 
 Rec'd response "getstats" (1) from "[69]:":
 Args:   { outOctets=609393046 outFrames=5748991 queueOctets=106
 queueFrames=1 startTime={ tv_sec=1168178402 tv_usec=886685 } endTime={
 tv_sec=1168178462 tv_usec=896665 } elapsedTime={ tv_sec=60 tv_usec=9980 }
 lastTime={ tv_sec=1168178402 tv_usec=886685 } }
 
 Hа сервере:
 00005  2639889  242869788 allow udp from any to any in recv fxp0
 
 Итого получаем: 2639889/5748991=45.9% успеха, или почти 55% потерь.
 В процессе тестирования буфера на выход на этой сетевой у клиента
 забивались вусмерть (пинг не ходил: ping: sendto: No buffer space available),
 ранее установленный ssh-коннект с сервером порвался.
 
 Вопрос - что именно меряет ng_source? Судя по всему, потери образовались
 еще до выхода в линию, на клиенте. Сам клиент при этом по процессору
 был 96% idle все время.
 
 Eugene
 -- 
 А если не будут брать, отключим газ.
 --- slrn/0.9.8.0 (FreeBSD)
  * Origin: Svyaz Service JSC (2:5006/1@fidonet)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: BSD 6.1 & polling   Eugene Grosbein   07 Jan 2007 22:15:29 
 Re: BSD 6.1 & polling   Eugene Grosbein   07 Jan 2007 22:23:46 
 Re: BSD 6.1 & polling   Eugene Grosbein   07 Jan 2007 23:47:14 
Архивное /ru.unix.bsd/2609365006297.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional