用 alstat 工具检测对齐异常
数据未对齐可能导致硬件生成对齐异常。
AIX编译器会对数据类型进行自然对齐。 例如,对于 2 个字节的短整型数据,编译器自动将它增加到 4 个字节的长度。 一些常见的编程习惯如类型转换和对齐编译指示,可能会引起应用程序数据对齐不正确。 基于 POWER 处理器的优化假设数据对齐正确。 这样,取没有对齐的数据可能要多次访问内存,但是一次访问就应该足够了。 数据未对齐生成的对齐异常将强制内核模拟所需要的内存访问。 像指令仿真一样,这将降低应用程序性能。
与 bos.perf.tools 打包在一起的 alstat 工具可用于检测是否发生了对齐异常。 为了基于每个 CPU 显示对齐异常,使用 -v 选项。
由于 alstat 和 emstat 是相同的二进制文件,那么这两个工具中的任一个都可用于显示指令仿真和对齐异常。 要显示指令仿真,请在 alstat上使用 -e 选项。 要显示对齐异常,请在 emstat上使用 -a 选项。
alstat 的输出看起来与下面相似:
# alstat -e 1
Alignment Alignment Emulation Emulation
SinceBoot Delta SinceBoot Delta
0 0 0 0
0 0 0 0
0 0 0 0