今日、同社は特別なウェブサイトが突然遅く開かれ、状況は時々開いて表示されていない、ネットワークの問題があると思われるようになったが、ネットワークの調査は任意の異常を明らかにしなかった、最終的にサイトサーバーで内部調査を発行することを決定しました
ミドルウェアは、ポート7080をリッスンし、7080ポートをリスニングする場合を初めて目にApacheを持つサイトです
これは、TIME_WAIT状態とCLOSE_WAITで接続数が多いことがわかりました
CLOSE_WAIT
相手が接続をクローズするか、ネットワーク接続が異常に結果が失われ、その後、我々は近い(呼びたい。この時点で、状態CLOSE_WAITになります)接続が正しく閉じられ作るためにイニシアチブをとります
TIME_WAIT
異なるオペレーティングシステム上のデフォルトMPMモジュール | ||
---|---|---|
オペレーティングシステム | MPMモジュール | 説明 |
ウィンドウズ | mpm_winntで | それを導入しているわけではありません:) |
UNIX / Linuxの | mpm_prefork | それを導入しているわけではありません:) |
BeOSの | mpm_beos | Beが開発したマルチメディアオペレーティングシステムからは、公式バージョンは更新を停止しました。 |
Netwareの | mpm_netwareでは、 | Novellネットワーク・オペレーティング・システムによって起動会社 |
OS / 2 | mpmt_os2は | 一种最初由微软和IBM共同开发的操作系统,现由IBM单独开发(微软放弃OS/2,转而开发Windows) |
mpm_winnt
模块是专门针对Windows操作系统而优化设计的MPM模块。它只创建一个单独的子进程,并在这个子进程中轮流产生多个线程来处理请求。
(1)由于apache默认状态下mpm模块的代码是注释的,所以需要先修改apche核心配置
修改为
# Server-pool management (MPM specific)
Include conf/extra/httpd-mpm.conf
(2)修改httpd-mpm.conf
<IfModule mpm_winnt_module>
ThreadsPerChild 150 #推荐设置:小型网站=1000 中型网站=1000~2000 大型网站=2000~3500
MaxRequestsPerChild 0 #推荐设置:小=10000 中或大=20000~100000
<IfModule>
对应的配置参数作用如下:
- ThreadsPerChild
- 每个子进程的最大并发线程数。
- MaxRequestsPerChild
-
每个子进程允许处理的请求总数。如果累计处理的请求数超过该值,该子进程将会结束(然后根据需要确定是否创建新的子进程),该值设为0表示不限制请求总数(子进程永不结束)。
该参数建议设为非零的值,可以带来以下两个好处:
-
- 可以防止程序中可能存在的内存泄漏无限进行下去,从而耗尽内存。
- 给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量。
-
注意:在以上涉及到统计请求数量的参数中,对于KeepAlive的连接,只有第一个请求会被计数。