最大化 AIX 上的 Java 性能,第 4 部分: 监视流量
2008-11-10 08:26:43 来源:WEB开发网这些 GC 周期几乎准确地相隔 60 秒钟触发一次,并且不是由于“分配故障 (Allocation Failure)”而触发的。在确保应用程序没有直接调用 System.gc() 以后,技巧 NI003 可能适用于这里。
对于 RMI 密集型应用程序,应该考虑技巧 NI005,但是要注意该技巧中提到的注意事项。
磁盘密集型应用程序
使用 iostat 和 filemon,您应该能够找出瓶颈的根源。解决方案通常是调整应用程序设计以停止依赖磁盘访问,或者是调整系统以优化磁盘访问。由于这两类调整都超出了本文的范围,我们建议您熟悉 iostat 和 filemon。前一部分中的信息应该能让您开始上路。
一般技巧集合
下文将把 Java 的命令行参数(在 class/jar 文件名称之前指定)称为“开关”。例如,命令行 java -mx2g hello 具有单个开关 -mx2g。
技巧 NIO001 检查网络连接的速度
可以在需要分析其连接速度的两个系统之间建立 FTP 会话,并且可以执行以下 FTP 命令:
ftp> put "|dd if=/dev/zero bs=32k count=1000" /dev/null
200 PORT command successful.
150 Opening data connection for /dev/null.
1000+0 records in.
1000+0 records out.
226 Transfer complete.
32768000 bytes sent in 130.4 seconds (245.4 Kbytes/s)
local: |dd if=/dev/zero bs=32k count=1000 remote: /dev/null
上面的快速测试尝试传输 1000 个零块 (blocks of zeroes),每个块的大小为 32 KB,并提供了一种确定两台 AIX 计算机之间的连接吞吐量的简单方法。上面的示例显示吞吐量为 245.4 KBps,这指示存在网络问题,因为两台 AIX 计算机都在使用 100 Mbps 的全双工网络适配器。假如上面的测试显示 1.140 E+4 Kbytes/s,这是应该改为集中于应用程序的很好暗示。您可以改变块大小和计数,以更详细地模拟您的应用程序行为。
更多精彩
赞助商链接