我有两个同时购买相同硬件configuration的Dell R730系统。 两者都运行RHEL6.9,其中从相同的图像成像。 这是在一月份的形象。 我每月更新一次仓库中的软件包,因此一般来说系统上的所有内容都应该“几乎”相同。 (即我在一个系统上改变的任何软件或设置在另一个系统上被改变,但是由于这是一个手动过程,可能会有一些错过)
我注意到一个系统的性能比另一个慢了2.5倍。 我正在testing的工作是单线程CPU密集型。 根据iostat读取一些数据文件,但非常低的磁盘io利用率。 上图显示该进程始终与100%挂钩,但系统有88个线程,平均负载仅为大约1.很less的内存使用率。 没有networking利用率。 (它使用的所有文件都是本地的)一个是复杂的python脚本,另一个是专有的软件程序,两者在一个系统上的运行速度都比较慢。
/ proc / cpuinfo是相同的。 BIOS设置是相同的。 系统上只有一个用户。 较快的系统连接到互联网,较慢的系统连接到独立networking。
在我的调查中,我只发现了两个不同之处。 1.较快的系统运行BIOS版本2.25较慢的系统运行BIOS版本2.43 2.较慢的系统已经审计运行。 但是在这个过程中审计日志中没有活动。
我意识到这很难debugging,但我正在寻找什么想法。 是否有一些内置的软件工具可以用来更深入地了解可能发生的事情?
我今天在企业硬件上使用EL6系统的build议如下:
enterprise-storage
或latency-performance
。 sosreport
来获得两个系统configuration的总结。 当然,你也可以分析过程… top
, perf top
, pidstat
, strace
。
或者使用Netdata实时查看服务器,并关联所有系统度量标准以查看瓶颈存在的位置。
在/etc/profile.d/tzfix.sh中,我也做了以下几点:
# Set TZ variable to reduce stat("/etc/localtime" activity # See: https://blog.packagecloud.io/eng/2017/02/21/set-environment-variable-save-thousands-of-system-calls/ # export TZ=:/etc/localtime
只是一些想法开始。
这可能与电源pipe理有关。 尝试将两台服务器置于高性能模式(禁用电源pipe理)并重新执行性能testing。