Apache error.log [warn](OS 64)指定的网络名不再可用。winnt_accept: Asynchronous AcceptEx failed.

两年前公司给客户做过一个门户网站,近些日子客户多次向我反映,网站打开网页特别慢,经常打不开网站,就是打开也要7、8分钟才能打开。后来重启服务,之后没过半小时,又是打不开网站了。

我们用的是Apache2.2,进入 /Apache2.2/logs/ ,发现有好多error.log,打开最近日期的一个,看到日志输出了许多的“[warn](OS 64)指定的网络名不再可用。winnt_accept: Asynchronous AcceptEx failed.” 。在网上查了许多资料,解决方法简单地说就是让Apache启动时关闭AcceptEx(),我先把解决方案说一下,然后在贴上一些官方的解释。我想大家也和我一样,遇到这样的问题想最先试试解决方法。

打开配置文件 / Apache2.2 / conf / httpd.conf ,找到 #Include conf/extra/httpd-mpm.conf ,然后去掉前面的#。

# Server-pool management (MPM specific)
Include conf/extra/httpd-mpm.conf
        打开配置文件 / Apache2.2 / conf / extra / httpd-mpm.conf ,找到<IfModule mpm_winnt_module>(有的版本是<IfModule mpm_winnt.c>),

# WinNT MPM
# ThreadsPerChild: constant number of worker threads in the server process
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule mpm_winnt_module>
ThreadsPerChild 1000
MaxRequestsPerChild 10000
Win32DisableAcceptEx #加入这行
</IfModule>
        Win32DisableAcceptEx 是新加入的。

重新启动Apache,error.log不会再出现“[warn](OS 64)指定的网络名不再可用。winnt_accept: Asynchronous AcceptEx failed.”,而且页面访问速度变得很快了。

下面是就这个问题的Apache官方的解释:

http://httpd.apache.org/docs/2.0/mod/mpm_winnt.html#win32disableacceptex

=========================================================================================

Win32DisableAcceptEx Directive
Description: Use accept() rather than AcceptEx() to accept network connections
Syntax: Win32DisableAcceptEx
Default: AcceptEx() is enabled by default. Use this directive to disable use of AcceptEx()
Context: server config
Status: MPM
Module: mpm_winnt
Compatibility: Available in Version 2.0.49 and later
AcceptEx() is a Microsoft WinSock v2 API that provides some performance improvements over the use of the BSD style accept() API in certain circumstances. Some popular Windows products, typically virus scanning or virtual private network packages, have bugs that interfere with the proper operation of AcceptEx(). If you encounter an error condition like:

[error] (730038)An operation was attempted on something that is not a socket.: winnt_accept: AcceptEx failed. Attempting to recover.

you should use this directive to disable the use of AcceptEx().

=========================================================================================

大概翻译一下:

AcceptEx()默认是启用的;相关配置在mpm_winnt模块中,在2.0.49以及后面的版本就开始用了。

AcceptEx()是一个在某些情况下提高网络效率的微软的winsock v2的API。一些流行的Windows产品,尤其是病毒扫描及类似的软件会妨碍AcceptEx()的正确操作。如果你在error日志中遇到下面的输出:

[warn](OS 64)指定的网络名不再可用。winnt_accept: Asynchronous AcceptEx failed.
你应该关闭掉AcceptEx()。

//////////////////////////////////////////////////////////////////////////////////////////////////////

下面是我在查阅网上资料时看到的,他在改过配置后,发现内存猛增,一直到最后crash的情况。经过他的实验发现是,配置ThreadsPerChild 的数量与本身服务器的内存大小有一定的平衡关系。我在这里贴出他写的文章的链接,遇到类似问题的可以读一下。(尊重原创)

http://blog.csdn.net/lcj8/article/details/5767889

有什么不对的地方请大家多多指点,谢谢。
---------------------
作者:kaige_loveu
来源:CSDN
原文:https://blog.csdn.net/zwk199024/article/details/44975659
版权声明:本文为博主原创文章,转载请附上博文链接!

原文地址:https://www.cnblogs.com/CryOnMyShoulder/p/9813906.html

时间: 2024-10-12 17:25:00

Apache error.log [warn](OS 64)指定的网络名不再可用。winnt_accept: Asynchronous AcceptEx failed.的相关文章

apache 指定的网络名不再可用 原因及解决方法

1.出现问题状况: 出现问题网站:http://www.ayyzz.cn/ 前段时间作文大全网出现有时候比较慢,有时候"找不到网页"404错误:另外在error.log里也报错: [Mon May 07 08:32:22 2014] [warn] (OS 64)指定的网络名不再可用. : winnt_accept: Asynchronous AcceptEx failed. 2.网上查找到原因: winnt(MPM) - Apache 2.2 参考手册有下列描述Apache MPM w

Apache服务停止:信号灯超时时间已到,指定的网络名不再可用

环境说明:Apache2.4.10,Windows Server 2008 R2 问题说明: apache服务用于下载文件,但是在运行一段时间后,突然挂了. 其错误提示如下所示: [error] (730038)An operation was attempted on something that is not a socket.: winnt_accept: AcceptEx failed. Attempting to recover. [error] (OS 10038) : Child

apache指定的网络名不再可用错误解决方法

系统平台:  window server 2003  R2 service Pack 2 网站服务器环境:wamp [ apache:2.4.4 ]; 问题描述:服务器工作一点时间就出现假死状态,网站无法访问.查看apache错误日志出现如下错误: 在google上找到如下系列文章:http://jingyan.baidu.com/article/154b4631a9d5b828ca8f4198.html http://hi.baidu.com/h_appy/item/ed13fb2ad0fa2

ubuntu14.04 Samba服务无法访问 可能没有权限 指定的网络名不再可用的问题

按常规配置后,在windows资源管理器中登陆samba服务器,看得到分享目录却无法打开,弹出"无法访问.您可能没有权限使用网络资源,请与这台服务器的管理员联系以查明您是否有访问权限.指定的网络名不再可用."折腾了半天,始终不行. 最后通过查看 /var/log/samba/下的日志文件发现, [2016/08/24 01:04:09.910581, 0] ../source3/lib/popt_common.c:68(popt_s3_talloc_log_fn) talloc: ac

XP访问win10跳出“指定的网络名不可用”

XP访问win10跳出"指定的网络名不可用"RT,win10的电脑之前有问题,后来重装了下win1064位专业版!(重装前XP是可以访问win10的)现在win10共享后,XP电脑访问WIN10电脑的共享时,跳出"指定的网络名不再可用":ping也是通... 展开我来答分享 举报 浏览 1764 次2个回答x86696970 2018-07-19问题的出现是因为windows10安全升级造成的,升级默认停止了SMB 1.0/CIFS服务器,而xp访问共享正是通过这个

Apache服务挂起Asynchronous AcceptEx failed.

最近在使用PHP5.6+Apache2.4,搭建开发环境:在实际的开发过程中发现http请求一致处于挂起状态,于是重启(net start/stop)Apache2.4服务,然后再访问问题得到了解决,但是过一会,平凡的打开页面又出现问题,通过查看web服务器的日志,发现报很多"指定的网络名不再可用"的错误: [Thu Nov 20 14:07:43.151780 2014] [mpm_winnt:warn] [pid 8752:tid 1132] (OS 64)指定的网络名不再可用. 

更换ip后,iis出现“指定的网络名格式无效”

WIN2003, 换了个IP以后, IIS 里面的站点就无法启动了, 一启动就出现 “指定的网络名格式无效”, 怎么解决??    这与以前系统绑定IP有关.只要把以前的IIS配置文件中与绑定有关的数据修改回来就可以用了 命令行语法   绑定到某IP: httpcfg set iplisten -i 192.168.0.1   即命令使用IIS的只监听指定的IP及端口   查看绑定: httpcfg query iplisten   删除绑定: httpcfg delete iplisten -

Apache access.log error.log日志文件太大优化方法

有没有发现Apache生成的日志文件一天比一天大,不是一般大,若你apache安装在C盘,那可惨了,不几天硬盘就满了,太恐怖了,有没有办法优化一下日志,让它不那么大?答案是有的. 一.停止Apache服务,删除Apache下/logs/目录中的error.log和access.log文件. 二.打开Apache的conf/httpd.conf配置文件,找到以下配置信息: ErrorLog logs/error.log CustomLog logs/access.log common 请在上述两行

Linux Apache error 日志 提示[warn] child process 7751 still did not exit, sending a SIGTERM

Apache吃空内存,频繁宕机 在部署一套内网测试环境时,频繁宕机,开机后不断的吃内存,重启apache之后内存占用会不停的上涨,直到swap用完,直到死机,由于是内网环境,服务器并发和压力都很小. 查看apache错误日志,报大量类似错误: [Tue Feb 14 14:49:28 2012] [warn] child process 7751 still did not exit, sending a SIGTERM [Tue Feb 14 14:49:30 2012] [error] ch