如何避免apache在MVC应用程序中停止响应

时间:2014-06-28 18:43:21

标签: linux apache asp.net-mvc-4 mono mod-mono

ASP.NET MVC4应用程序在Debian x64 Linux中使用Apache,Mono 3.2.8和mod_mono运行

每月有时服务器停止响应:

还有mod_mono控制面板和apache服务器状态模块。

在浏览器中键入mysite.commysite.com/server-statusmysite.com/mono会永远等待。 top表明cpu的使用率几乎为零,并且有大量的可用内存。

web.config中没有特殊超时,因此每个线程应该在110秒后终止 如果它挂起 看起来apache停止响应,可能达到了最大数量的并发连接。 这是购物车应用程序,搜索引擎机器人每天都会拨打大量的电话。

如何解决或找到那些挂断的原因?

创建cron作业是否合理

wget --tries=1 --timeout=5  www.mysite.com || /etc/init.d/apache2 restart

每隔10分钟运行一次?如果发生挂断,这会重启apache吗?

使用crontab -e并添加行

10 * * * * wget --tries=1 --timeout=5  www.mysite.com || /etc/init.d/apache2 restart

每小时只运行一次检查。如何每隔10分钟检查一次?

apache2 -V返回:

Server version: Apache/2.2.22 (Debian)
Server built:   Feb  1 2014 21:26:17
Server's Module Magic Number: 20051115:30
Server loaded:  APR 1.4.6, APR-Util 1.4.1
Compiled using: APR 1.4.6, APR-Util 1.4.1
Architecture:   64-bit
Server MPM:     Worker
  threaded:     yes (fixed thread count)
    forked:     yes (variable process count)
Server compiled with....
 -D APACHE_MPM_DIR="server/mpm/worker"
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=128
 -D HTTPD_ROOT="/etc/apache2"
 -D SUEXEC_BIN="/usr/lib/apache2/suexec"
 -D DEFAULT_PIDLOG="/var/run/apache2.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="mime.types"
 -D SERVER_CONFIG_FILE="apache2.conf"

0 个答案:

没有答案