前言:今天图片服务器
出现了问题,访问速度很慢。检查Apache的日志发现中间有一个错误
N多。
[warn] (OS 64)指定的网络名不再可用。 :
winnt_accept: Asynchronous AcceptEx
failed.
而且写入速度急快每秒钟要写入6条错误记录。最后查找了相关的资料解决了问题。并把一些其它的日志问题都合到一起,虽然还没有碰到过,也许以后会碰到,以后碰到新的也要把这些问题合到一起方便自己。
问题一、
Apache日志中“指定的网络名不再可用”问题的解决
现象:
[Sat
Mar 03 13:29:49 2007] [warn] (OS 64)指定的网络名不再可用。 : winnt_accept: Asynchronous
AcceptEx failed.
出现这个故障时硬盘灯狂闪,内存占用极大,访问极慢。
分析:
AcceptEx() 是 Microsoft
WinSock v2 API 一组提升网路效率 API 中的指令。而且在 Windows 上似乎蛮有可能出问题的。
注:可能為了效能还是预设為开啟 AcceptEx()
解决:
如果无预警的发生问题,我猜可能是 Windows Update
或是防火墙、防毒软体更新了某些网路原件,造成 Microsoft WinSock v2 API 动作不正常,这时可以把这个功能先给关掉。
依照官方说明 , Win32DisableAcceptEx 这个功能,只有 2.0.49 版以后的才可以使用,所以我猜测 AcceptEx()
这个指令大概也是 2.0.49 才会开始支援(目前最新的就是 2.0.49)。
关掉 AcceptEx() 的方式只要在
httpd.conf 找到 <IfModule mpm_winnt.c> 区段,加入 Win32DisableAcceptEx
就可以了。
<IfModule mpm_winnt.c>
Win32DisableAcceptEx
#加入这一行
ThreadsPerChild 250
MaxRequestsPerChild 0
</IfModule>
疑问:如果把AcceptEx()这个关掉了,是否会影响访问的速度;如果影响速度,又怎样不让速度慢下来。
问题二、
apache
错误日志里面出现"connection reset by
peer"
分析:
这个问题一般是客户端在连接还没有完全建立的时候就取消连接,比如用户
按了浏览器上面的“停止”按钮,一般来说没有什么问题。但是如果频繁出现,就表示很多客户端连接到Apache服务器的响应时间太长了,可能是网络的问题或者服务器性能问题。
问题三、
apache错误日志里面提示default.ida或者cmd.exe不存在
分析:
这个说明Internet上面的某些机器中了蠕虫病毒比如Nimda或者Code Red。
你可以略过这些错误,因为这些病毒对Apache无效。
问题四、
apache错误日志里面出现"fcntl: F_SETLKW: No record
locks available
现象:
服务器挂起,或者不能启动,错误日志里面出现"fcntl: F_SETLKW: No record
locks available"或者类似的信息。
分析:
这个是文件
锁定问题,表示Apache服务器在尝试使用一个NFS文件系统
上面的同步文件。由于使用并行操作模式,Apache服务器在访问某些特定资源的时候需要一些同步机制。其中一种同步机制就是文件锁定,这个需要被锁定文件那端的文件系统要支持锁定机制,所以使用NFS文件系统上面的文件会出现这种问题。
解决:
为了解决NFS文件系统的局限性,可以在配置文件里面加入一行:
LockFile
/var/run/apache-lock
这个文件对其他人必须是不能写入的。
注意:Redhat
Linux7.x版本以后已经提供了NFS锁定机制,应该不会出现此问题。
Apache日志问题解决集
最新推荐文章于 2021-08-10 15:06:19 发布