IIS每隔一段时间就无法进行访问,重启服务也不行,必须重启服务器才可以,请问是啥情况?如何解决?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IIS每隔一段时间就无法进行访问,重启服务也不行,必须重启服务器才可以,请问是啥情况?如何解决?相关的知识,希望对你有一定的参考价值。

IIS每隔一段时间就无法进行访问,重启服务也不行,必须重启服务器才可以,尤其放长假过后基本都会挂掉,请问是什么情况?如何解决?谢谢

参考技术A IIS假死吧。可能没有及时回收追问

请问如何解决,能给个解决方案吗,万分感激

追答

可以弄一个软件或批处理自动重启IIS,然后设定在规定时间重启,比如中午12点或晚上12点这样没人访问时自动重启IIS。
或程序池设置限制内存或CPU达到多少回收

参考技术B 看下日志先。追问

- - - - - - - - - 1_Connections_Refused -
- - - - - - - - - 2_Connections_Refused -
上面是不正常情况会出现的问题
- - - - - Timer_ConnectionIdle -
- - - - - Timer_ConnectionIdle -
这部分一般正常情况是这样的
请问是什么情况

追答

微软的官方解决方案,http://support.microsoft.com/kb/934878/zh-cn解决方法如下:
1.进入注册表,进入具体项:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters
2.新建dword值,输入名称“EnableAggressiveMemoryUsage”
3.修改值为1.
4.开始-运行,输入CMD。进入CMD窗口。
5.执行:net stop http /y
6.执行:iisreset /restart
IIS问题得到解决。

追问

急急急!!!不行啊出问题了,net stop http /y 启动了后,IIS无法访问了,怎么恢复回去啊

追答

看下日志!!!!报错是什么?

参考资料:http://support.microsoft.com/kb/933844

本回答被提问者采纳

Django 无法每隔一段时间连接到数据库(Centos)

【中文标题】Django 无法每隔一段时间连接到数据库(Centos)【英文标题】:Django can't connect to database every once in a while (Centos) 【发布时间】:2016-10-11 08:11:26 【问题描述】:

我遇到了一个非常奇怪的问题,我有一个运行 mod_wsgi 的 Apache 服务器。该网站运行良好,但每隔一段时间我就会得到 ​​p>

IOError: failed to write data

网站所有页面上的错误。然后我用

解决了
sudo service mysqld restart

由于网站不能长时间关闭,我没有时间调试这个问题,我只是每次发生这种情况时运行命令。我只在日志中看到错误,这就是为什么我无法真正调试它,并且它没有明确的复制步骤,它只是随机发生。

如果您需要我发布任何配置文件,我们将不胜感激。

编辑:django 显示的确切错误是:

(2002, "Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)")

我保存了错误消息,它托管在here。 (密码已删除)

编辑: 这是 mysql 服务器错误日志的摘录。

160610 10:51:53 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
160610 10:51:53 [Note] /usr/libexec/mysql55/mysqld (mysqld 5.5.46) starting as process 7658 ...
160617 14:35:47 [Note] /usr/libexec/mysql55/mysqld (mysqld 5.5.46) starting as process 32054 ...
160617 14:35:47 [Note] Plugin 'FEDERATED' is disabled.
160617 14:35:47 InnoDB: The InnoDB memory heap is disabled
160617 14:35:47 InnoDB: Mutexes and rw_locks use GCC atomic builtins
160617 14:35:47 InnoDB: Compressed tables use zlib 1.2.8
160617 14:35:47 InnoDB: Using Linux native AIO
160617 14:35:47 InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: mmap(137363456 bytes) failed; errno 12
160617 14:35:47 InnoDB: Completed initialization of buffer pool
160617 14:35:47 InnoDB: Fatal error: cannot allocate memory for the buffer pool
160617 14:35:47 [ERROR] Plugin 'InnoDB' init function returned error.
160617 14:35:47 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
160617 14:35:47 [ERROR] Unknown/unsupported storage engine: InnoDB
160617 14:35:47 [ERROR] Aborting

我保存了完整的 mysqld.log here。

【问题讨论】:

听起来您需要花时间来调试问题。您应该查看整个错误堆栈跟踪,看看它有哪些额外的细节 我会看一下,下次出现的时候贴一下,大家有什么关于连接mysql到django的通用tips吗? 好的,又发生了,我保存了错误日志。你能帮忙吗? 你更有可能在mysql错误日志中找到错误来源 尝试查看或发布 mysql 错误日志(应该在 /var/log/mysqld.log 下) 【参考方案1】:

为什么会崩溃

这似乎是罪魁祸首

160617 14:35:47 InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: mmap(137363456 bytes) failed; errno 12

这种情况是由服务器耗尽物理内存引起的。这就是 errno 12 在内核错误中的含义。

Stack Overflow 和dba.stackexchange 都讨论过这个话题。如果您想模拟内存不足的情况或尝试手动重现错误,请尝试以下一些工具: How to fill 90% of the free memory?

快速解决方案

如果你能升级内存,你可以试试。如果没有,您可以尝试创建一个大型交换文件。您可能根本没有交换。一些 AWS EC2 实例默认没有。您可以通过在 shell 中键入 top 来查找。如果您在顶部附近没有看到交换,则表示您没有交换。

交换文件会使查询速度变慢,但至少比网站离线要好。

您可能很想尝试修改systemd 文件以使mysql 自动启动。 更新:@PeterBrittain 指出 mysql 无论如何都会自动重启,如日志所示。有时虽然数据库可能需要一些时间才能重新启动,并且如果数据损坏,它将拒绝重新启动。

为什么内存耗尽?

如果您没有在其上运行任何其他服务器,则 2GB 足以托管一个每天提供 6000 个页面的网站。可能是您有一些相当繁重的查询给数据库带来了不必要的负载。可以采取一些补救措施

    使用 django-debug-toolbar 识别执行许多查询的页面,看看是否可以使用 select_related 或 prefetch_related 来减少数量。 使用mysql慢查询日志查找执行时间长的查询并进行优化。 使用缓存来保存复杂查询的结果。

【讨论】:

你能提出一种方法来检验你的假设吗?即,你能告诉我如何剥夺我的服务器的物理内存以重现错误吗? 我使用了选择的工具(压力)并使用了高达 90% 的空闲内存(使用提到的命令),但是没有发生错误,我一直在刷新很多页面(使用很多查询)。你推荐一些其他的工具/命令吗? @bit68 请注意,mysql 5.5 已经有一个重启包装器,该包装器已在日志中明确调用。因此,我认为使用 systemd 不会有什么不同。 @e4c5 写得不错。当我在过载的服务器上遇到类似问题时,我还必须调整 Apache,使其不会尝试启动太多工作程序,然后在完成一些缓慢的请求时消耗更多内存。 很高兴能帮上忙

以上是关于IIS每隔一段时间就无法进行访问,重启服务也不行,必须重启服务器才可以,请问是啥情况?如何解决?的主要内容,如果未能解决你的问题,请参考以下文章

网站发布到服务器上隔一段时间就访问不到数据库了,重启下IIS就好了,请问这个是啥问题啊 跪求

在 EC2 上运行的 Postgres 服务器每隔一段时间就会关闭。无法在此处隔离问题

IIS 6.0上的网站在运行一段时间之后无法访问,之前已经连接的页面可以用,关掉之后就再无法连接

服务器过一段时间后IIS就不能用了,远程桌面一连接只是一闪就关闭了

pycharm每隔一段时间登不上

java中如何每隔一段时间执行一个函数