通常,当 Web 应用程序运行缓慢时,我们使用top 命令来检查服务器性能,这是每个 Linux 管理员采用的第一级故障排除步骤。
有时,由于与 的多个并发连接,Web 服务器响应非常缓慢。如果是这样,您可能需要检查有多少活动连接,以及哪个 IP 占用了来自 Apache 的最大连接数。
并非每个 Apache 连接都是真正的用户,其中一些是搜索引擎蜘蛛,如 googlebot、yahoobot、百度蜘蛛。这些恶意机器人从同一个 IP 地址同时向 Apache 发出多个请求。
Apache Web 服务器使用“MaxRequestWorkers”指令控制并发连接,并且'256'
是 MaxRequestWorkers 的默认值。任何超出 MaxRequestWorkers 限制的连接尝试通常都会排队,最多可达基于 ListenBacklog 指令的数量。
您可以根据服务器配置和其他要求调整此值,但在更改 MaxRequestWorkers 值时还必须增加“ServerLimit”值。
可以使用“netstat”和“ss”命令找到并发 Apache 连接,这些命令被系统管理员和安全专业人员广泛使用。
什么是ss命令?
ss代表套接字统计信息。它用于转储有关网络/套接字连接的套接字统计信息。
它显示类似于 netstat 的信息,但与 netstat 相比,它运行得更好更快。它可以显示比其他工具更多的 TCP 和状态信息。
它比 netstat 更快,因为它直接从内核空间获取所有信息。
netstat 命令是什么?
netstat代表网络统计信息。它显示网络连接、路由表、接口统计、伪装连接、多播成员和网络协议统计。
在大多数 Linux 发行版中,netstat 命令已被弃用并替换为 ss 命令。
它读取各种“/proc”文件以收集信息。如果要显示大量连接,则需要更多时间。
1)检查并发Apache连接数
运行以下 ss 命令以查找到 Apache 的并发连接总数:
# ss -ant | grep -E ':80|:443' | wc -l
或者,您可以使用 netstat 命令获取 Apache 并发连接,如下所示:
# netstat -ant | grep -E ':80|:443' | wc -l
2)详细检查Apache的并发连接
运行下面的 ss 命令来查看 Apache 连接的详细信息,而不是计算它。
它显示了服务器上端口 80 和 443 上的活动互联网连接:
# ss -ant | grep -E ':80|:443'
使用 netstat 命令检查相同的信息,如下所示:
# netstat -ant | grep -E ':80|:443'
3) 列出按 IP 排序的 Apache 连接
要从每个 IP 地址计算 Apache 中当前活动的连接数并对其进行排序,请使用以下命令:
# ss -ant |grep -E ':80|:443'|grep ESTAB| awk '{print $5}' | cut -d":" -f1 | sort | uniq -c | sort -nr
同样,您可以使用 netstat 命令找到相同的信息,如下所示:
# netstat -ant |grep -E ':80|:443'|grep ESTAB | awk '{print $5}' | cut -d":" -f1 | sort | uniq -c | sort -nr
总结:在教程中,您学习了如何在 Linux 中使用 ss 和 netstat 命令查找 Apache 并发连接。