我如何识别动态 Web 应用服务器上的“填鸭式问题”?

我如何识别动态 Web 应用服务器上的“填鸭式问题”?

最近有人向我解释,“填鸭式问题”是指当与应用服务器的连接被缓慢的网络连接所束缚,无法向客户端提供数据时。这对我来说很有意义,现在我明白了在应用服务器前面放置高并发代理的重要性。

我的问题是,第一个认识到这个问题的人是如何解决这个问题的?如果没有人向我解释,哪些 *nix 工具和故障排除技术可以帮助我识别这个问题?

答案1

根据架构的不同,您还可能会看到 CPU 用户空间 CPU 利用率较低,但由于进程处于等待队列中,导致内核空间网络 IO 例程阻塞,因此负载较高。如果您正在运行线程池系统,很多时候您的请求会被拒绝或排队,且 CPU 使用率较低,IO 等待计数器也会很高。

有时,创建额外的线程/工作者可以暂时缓解该问题,直到您的系统达到另一个临界质量。

老实说,这看起来很像您在拥有一个速度较慢的 NFS 服务器时遇到的情况。

答案2

如果您正在使用 Apache,典型的症状是在查看服务器状态页面时有很多连接处于“W”状态。

答案3

它不是 *nix 工具,但我发现托管交换机端口镜像与 Wireshark 或 Wildpackets 结合使用非常有用。使用过滤器可以比较运行速度快或慢的类似事务的速度。

相关内容