我正在尝试调整在 Solaris 上运行的高消息流量系统。该架构包含大量 (600) 客户端,它们通过 TCP 连接到大型 Solaris 服务器,然后以高速率发送/接收相对较小的消息(.5 到 1K 有效负载)。目标是尽量减少处理每条消息的延迟。我怀疑服务器的 TCP 堆栈被所有流量压垮了。我可以使用哪些命令/指标来确认这一点,如果这是真的,缓解此瓶颈的最佳方法是什么?
PS 我最初在 StackOverflow 上发布了这篇文章。有人建议使用 snoop 和 dtrace。dtrace 似乎很通用 - 有没有关于如何使用它来诊断 TCP 问题的其他提示?
答案1
首先看一下 dtrace 工具包,还有“netstat -na”输出...您是否看到 TIME WAIT 中的很多连接......
在 dtrace 工具包(谷歌搜索)中,“connections”脚本可能特别吸引你。当然,这是假设你使用的是 Solaris 10...
600 个并发 TCP 连接并不是一个特别大的数字。
如果确实需要调整,您将使用 ndd 来设置内核参数。请参阅: 互联网协议套件可调参数