- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在过去几天刚刚启动的当前生产服务器出现问题。我正在运行 apache httpd-2.2.3 和 tomcat-5.5.20,与 mod_jk v1.3 连接,并在 tomcat 上托管了一个 Spring MVC 站点。正在发生的事情是,在启动大约 12 小时后,网站对我们的用户挂起。当这第一次发生时,我可以在 catalina.out 中看到以下几个错误
WARN [org.apache.jk.core.MsgContext] Error sending end packet
java.net.SocketException: Broken pipe
在查看之后,我开始明白这意味着用户在请求完成之前取消了请求,因此返回路径已关闭,因此数据无法返回。从网上搜索看来,这可能会导致线程在 tomcat 中保持打开状态,直到达到超时为止。这似乎是有道理的,因为当 tomcat 摔倒时我到达了 catalina.out 日志的末尾
All threads (200) are currently busy, waiting. Increase maxThreads (200) or check the servlet status
建议对 apache httpd.conf 中的 JkModule 设置进行以下更改
JkOptions +DisableReuse
我在确保它不会对我们的网站造成副作用后才这样做,并且第二天运行良好,但昨天出现了相同的症状,网站已卡住。然而这一次在 catalina.out 中完全没有错误,我们只是停止向 tomcat 发送请求。我从应用程序日志中可以看到它在 17:31 收到了最后一个请求,然后在 mod_jk.log 中我可以看到以下内容
[Thu Sep 06 17:37:07 2012] [18784:53792] [error] ajp_connection_tcp_get_message::jk_ajp_common.c (947): (worker1) can't receive the response message from tomcat, network problems or tomcat is down (127.0.0.1:8009), err=-104
[Thu Sep 06 17:37:07 2012] [18784:53792] [error] ajp_get_reply::jk_ajp_common.c (1536): (worker1) Tomcat is down or refused connection. No response has been sent to the client (yet)
然后在我的 httpd error_log 中
[Thu Sep 06 17:38:39 2012] [error] server reached MaxClients setting, consider raising the MaxClients setting
所以在我收到任何错误之前是 6 分钟,然后是最大客户端错误之前的 1 分 30 秒。重新启动 tomcat 也解决了这个特定问题。
除了我提到的配置(下面的当前配置)之外,我们的 apache、tomcat 或连接器配置没有任何变化,但我们已经对我们的站点进行了更改,以便为每个用户执行更多的 Ajax 请求。因此,我想了解的是,我如何最好地分析我们的系统,以了解我可以进行哪些正确的设置更改,以确保我不会使我们的服务器过载,但确实可以阻止此问题的发生。
谢谢伊恩
当前配置
httpd.conf
Timeout 300
KeepAlive on
MaxKeepAliveRequests 100
KeepAliveTimeout 15
LoadModule jk_module modules/mod_jk.so
JkLogLevel error
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories +DisableReuse
workers.properties
# Define 1 real worker using ajp13
worker.list=worker1
# Set properties for worker1 (ajp13)
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
worker.worker1.lbfactor=50
worker.worker1.cachesize=10
worker.worker1.cache_timeout=600
worker.worker1.socket_keepalive=1
worker.worker1.recycle_timeout=300
httpd-mpm.conf
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 0
Tomcat设置就是标准的tomcat设置
最佳答案
原来答案是改变保活超时。为了阻止这种情况发生,我需要做的就是将 KeepAliveTimeout 从 15 更改为 2,并将 MaxRequestsPerChild 添加为 5000。我发现这可以阻止此问题再次发生
关于apache - mod_jk 失去与 tomcat 的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12310601/
我在我的项目(Ubuntu 18.04.2 LTS)中使用了 celery 4.4.0 版本。当我提出异常('功能中的功能太少无法分类')时, celery 项目失去了 worker ,我得到了这样的
我在这样的更新面板中有一个 GridView :
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 关闭 9 年前。 这个问题似乎不是关于 a specific programming problem,
当我尝试使用 jquery 的 html() 将 HTML 附加到另一个元素时。我失去了 ng-click 的能力。这是我的代码的粗略描述。例如我有一个名为 testController 的 Cont
我正在将 python 连接到 mySqL 数据库,并从 android 发送两个 Double 值以存储在 Mysql 中,然后我收到此错误 enter code here Exception i
无法理解为什么这个简单的事情没有反应性。看起来我错过了一些 Vue 的基础。 {{connection_status}} export default {
我不明白出了什么问题,在我的设备上应用程序运行良好,但有时在日志中(应用程序用户、 session 、崩溃......通过某些服务跟踪)我看到应用程序崩溃(NullPointerException),
我正在处理一个我有点困惑的问题。问题是假设您是二战期间英国空军的一名将军。您还剩下 100 架飞机来保卫英国。在您执行的每个任务中,每架飞机都有 50% 的几率被德国高射炮击落,因此每次执行任务您都会
我相信我的问题与以下问题非常相似 Spring security 'remember me' cookie not avaiable in first request . 基本上,我有一组用于公司内部
似乎 Bootstrap 下拉按钮在单击后仍保持焦点。 我的用例与此不兼容, 用户应该在单击按钮后按“SPACE”键,为了触发与按钮无关的东西。 问题是按钮保持焦点状态,因此按空格键 激活按钮。 我希
我有一个 MKMapView,其中有很多从解析器 xml 定义的注释引脚;那是我的代码: -(IBAction)LoadAnnotation:(id)sender { RXML element
我有一个 HTML 表格,用户可以在其中输入他的待机开始时间和待机结束时间,该时间计算总时数,并基于此计算获得的补偿时数。这一切都有效。 现在,它所做的是,每当用户输入开始和结束时间时,用户必须将焦点
Windows 系统更新后,Eclipse 不再了解 Android 的任何信息...我如何恢复对 Android 的支持?我尝试重新安装 SDK,但没有成功... 太奇怪了。我注意到项目模板丢失了,
我正在发送 SOAP 请求来更新某些实体。当我创建(而不是更新)几乎相同的东西时,一切正常。我跟踪了客户端和传输的日志记录,最后它给了我一个线索。它看起来像这样: DEBUG:suds.client:
这个问题在这里已经有了答案: TypeError: Cannot read property 'setState' of undefined (3 个答案) How to access the co
我使用 PostgreSQL 和 repmgrd 创建了一个 Docker 镜像,所有这些镜像都是使用 supervisor 启动的。 我现在的问题是,当它启动时,由 supervisor 生成的 r
新的 iOS 开发者为 iPhone 编写第一个委托(delegate)应用程序。 模态调用的父 View Controller 有六个 subview Controller ,它们使用父 View
我目前正在 MVC4 中创建一些用户配置文件编辑表单,并且为了测试,我将 UserId 属性呈现为表单上的只读文本框,如下所示: @Html.LabelFor(model => model.
我是一名优秀的程序员,十分优秀!