【发布时间】:2017-09-23 15:29:09
【问题描述】:
您将如何监控服务器性能:
计算已超时且根本没有处理的请求(客户端被饿死)
计数在处理过程中超时的请求
至少在 apache lvl 中计算因错误而失败的请求
谢谢
【问题讨论】:
您将如何监控服务器性能:
计算已超时且根本没有处理的请求(客户端被饿死)
计数在处理过程中超时的请求
至少在 apache lvl 中计算因错误而失败的请求
谢谢
【问题讨论】:
计算已超时且根本没有处理的请求(客户端被饿死)
这取决于您使用的平台以及 apache 服务器的用途。如果将 apache 服务器用作某些网站的后端,您可以为客户端(网站用户)发出的每个请求添加时间戳,或者让客户端使用相关时间戳跟踪它执行的请求。将此数据发送到服务器,并让服务器将这些数据与它自己的日志进行比较。
因此,我建议在客户端和服务器端跟踪所有接收和发送的请求及其附加状态(成功或失败、时间戳)。
对于更具体的信息,我认为更多关于实际实施的背景信息是必须的。
【讨论】:
据我所知,Apache 不支持 server status 以外的此类功能。但这并没有包含足够的指标来满足您的要求。
但nginx 提供的指标更多,几乎包括您需要的指标。
Nginx 开源版本支持以下指标,
- 接受/接受
- 已处理
- 掉落
- 有效
- 请求/总数
请参考this article。如果您尝试托管 php web 应用程序,则可以在这种情况下迁移到 nginx。
【讨论】:
我不是这种情况的专家,但这是我的看法,
请求超时会在日志中生成 408 错误,该错误是可计数的,并且 apache 提供了一个变量 %D 来测量进程时间。
计算已超时且根本没有处理的请求 (客户饿死了)
如果没有处理时间或最少,那么您可以假设请求根本没有处理。
计算在处理过程中超时的请求
与以前的理论相反,您将需要一些时间来记录处理。
至少在 apache lvl 中计算因错误而失败的请求
你肯定会因为 apache 遇到的任何原因得到错误日志。
在这种情况下,keep alive 的作用是另一回事。
Apache 2 和 2.4 中的日志记录方法有所不同,请记住这一点,但常见的日志记录格式会导致结果。
编辑:
如果您正在寻找可以为您提供一些见解的工具,请尝试以下方法,Apache httpd 服务器确实提供了 nginx 和其他服务器可以提供的所有必要见解。
http://goaccess.prosoftcorp.com/
http://awstats.sourceforge.net/
参考:
http://httpd.apache.org/docs/current/mod/mod_log_config.html https://httpd.apache.org/docs/2.4/mod/mod_reqtimeout.html https://httpd.apache.org/docs/2.4/logs.html
【讨论】: