LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 817|回复: 3

麻烦给诊断下我的LINUX上网服务器出了什么问题?

[复制链接]
发表于 2005-3-16 14:02:36 | 显示全部楼层 |阅读模式
所有人反映昨天晚上网速很有问题,我来的时候看了下代理服务器  上面有提示这样的信息:conntrack_ftp:partial 227 2695363311+13   (提示了5行这样的信息)然后下边是:eth0:too much work in interrupt,status e401  (提示了大概十几行)网速有问题大概持续了2个小时 。用的是RED9.0  。麻烦给诊断下是什么造成的  应该怎么解决?????急急急
发表于 2005-3-16 21:10:13 | 显示全部楼层
http://www.linuxforum.net/forum/ ... 45170&type=post

网卡忙不过来了,你用的是 3c59x吧?
换块 100M 的吧.
see
$LINUXSRC/drivers/net/3c59x.c line 1789
好象3c59x 的网卡会有这种问题
回复 支持 反对

使用道具 举报

发表于 2005-3-16 21:12:14 | 显示全部楼层
Re: eth0: Too much work at interrupt
Paul Gortmaker (gpg109@rsphy1.anu.edu.au)
Mon, 4 Dec 1995 12:52:08 +1100 (EST)

Messages sorted by: [ date ][ thread ][ subject ][ author ]
Next message: Alan Cox: "Re: Question..."
Previous message: Victor Hugo Velasco Esparza: "Re: My ppp is s-l-o-w"

--------------------------------------------------------------------------------
> I keep getting syslog messages like this:
>
> eth0: Too much work at interrupt, status 0x41
> eth0: Too much work at interrupt, status 0x01
>
> What can I do to fix this? Is is related to my computer, the card, or
> my local net.

All of the above :-)


> I am running 1.2.13 on a 486SX25 with an SMC Elite 16C ultra. I have
> used this card in other machines without any such errors.


They are harmless. The Ultra uses what was the RDC bit (0x40) of
NE2000 designs as an early Rx interrupt. Even though no processing
is done on an RDC interrupt, the 8390 driver still counts it as
one "work event" during that interrupt handler pass. (All the other
sh-mem 8390 cards won't ever post an RDC interrupt). This creates
an artificially high "work event" count per interrupt handler pass.


Since the interrupt handler keeps calling the Rx and Tx-done routines
while there are packets to be processed, a slower machine will have
a higher average "work event" count per interrupt handler pass.
(ie. faster machines can do the required work before more new work
arrives and thus fall out the bottom of the IRQ handler sooner.)


Ok, enough technical cruft. The proper cure is to set the early
Rx packet threshold to (max_pkt_size-1) -- Donald once mentioned
that he had done this on a development version of the driver he had.
At present smc-ultra.c doesn't initialize this register at all.
I don't have the specs to tell you where that reg. is, so until I get
in touch with Donald, here is a hack for 1.2.13 to make 8390.c not
count "RDC only" events as work.


if (interrupts & ENISR_RDC) {
- if (dev->mem_start)
- outb_p(ENISR_RDC, e8390_base + EN0_ISR);
+ outb_p(ENISR_RDC, e8390_base + EN0_ISR);
+ if (interrupts == ENISR_RDC) nr_serviced--;
}


Alternatively, you can just double the value of MAX_SERVICE in 8390.h
which will effectively do the same thing.

Clear as mud.
Paul.
回复 支持 反对

使用道具 举报

发表于 2005-3-17 16:33:43 | 显示全部楼层
换个好点儿的网卡吧。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表