我有一个带有FreeBSD 7.4内核的SOEKRIS 4801,我正试图从以太网端口(sis0-> sis1)中获得更多性能。
为此,我决定在sis驱动程序/内核中启用设备轮询。
我使用推荐的选项构建了内核:
options DEVICE_POLLING
options HZ=1000
所有内容都构建并运行,我可以输出以前不会使用
显示任何内容的内核轮询选项sysctl -a kern.polling
kern.polling.idlepoll_sleeping: 1
kern.polling.stalled: 270
kern.polling.suspect: 773
kern.polling.phase: 0
kern.polling.enable: 0
kern.polling.handlers: 1
kern.polling.residual_burst: 0
kern.polling.pending_polls: 0
kern.polling.lost_polls: 156704
kern.polling.short_ticks: 1705
kern.polling.reg_frac: 20
kern.polling.user_frac: 50
kern.polling.idle_poll: 0
kern.polling.each_burst: 5
kern.polling.burst_max: 150
kern.polling.burst: 150
(停滞/怀疑和丢失看起来不太好!)
我使用“ifconfig sis0 polling”等启动并启用适配器对sis0,sis1和sis2的轮询。
ifconfig显示已启用POLLING:
sis0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=3848<VLAN_MTU,POLLING,WOL_UCAST,WOL_MCAST,WOL_MAGIC>
ether 00:00:24:xx:6a:yy
inet 192.168.13.100 netmask 0xffffff00 broadcast 192.168.13.255
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
但是,当我使用“vmstat -i”监视中断并传输数据时,适配器上仍然会发生中断。根据{{3}}等各种指南,如果正在使用轮询,则中断不应增加。
吞吐量非常可怕,因此可以获得更快的速度,因为人们可以报告5MB:
input (Total) output
packets errs bytes packets errs bytes colls
1.8K 0 1.7M 1.8K 0 1.7M 0
1.7K 0 1.7M 1.7K 0 1.7M 0
1.7K 0 1.7M 1.7K 0 1.7M 0
1.8K 0 1.7M 1.8K 0 1.7M 0
1.8K 0 1.7M 1.8K 0 1.7M 0
1.8K 0 1.7M 1.8K 0 1.7M 0
目前,瓶颈在速度测试期间显示为> 95%的中断时间,因此希望启用设备轮询。
为什么中断仍在继续,好像设备轮询没有被使用?
由于