postgresql 服务器上奇怪的高 CPU I/O 等待

postgresql 服务器上奇怪的高 CPU I/O 等待

我目前确实在努力解决一个性能问题,当我的数据库服务器处于“重”负载下时,所有数据库查询所花的时间比平时多 1000 倍。

我有一台运行 ubuntu 12.04 并托管我的 postgresql 9.2 数据库的服务器。该服务器位于 Hetzner.de 上,它是一台 EX6s(8 核 xenon,32GB RAM 和两个 3T HDD,使用 ubuntus 软件 raid 进行 RAID1 设置)。当我运行大量查询(我经常在晚上进行)时,我发现几乎所有 CPU 使用率都花在了 CPU I/O 等待上。我安装了新的 Relic 监控,似乎找不到任何其他迹象表明此 CPU I/O 等待的根本原因,这显然是我的性能和吞吐量的瓶颈。

那么问题是,这个CPU I/O等待是什么,它在等待什么?

我在下面添加了所有我能从 New Relic 获得的概览图表。我忽略了什么?一定存在明显的瓶颈?我应该从哪里开始?

数据库服务器 CPU 使用率 - 告诉我有问题的恶魔 https://rpm.newrelic.com/public/charts/cEdIvvoQZCr

数据库服务器平均负载 https://rpm.newrelic.com/public/charts/cMNdrYW51QJ

数据库服务器物理内存 https://rpm.newrelic.com/public/charts/c3dZBntNpa1

数据库服务器磁盘 I/O 利用率 - 如您所见,磁盘似乎没有得到充分利用(几乎没有) https://rpm.newrelic.com/public/charts/9YEVw6RekFG

数据库服务器网络 I/O(Mb/s)——该网络是千兆内部网络,所有通信均在此网络上进行。 https://rpm.newrelic.com/public/charts/lKiZ0Szmwe7

按挂钟时间排名的前 5 个数据库操作 https://rpm.newrelic.com/public/charts/dCt45YH12FK

数据库吞吐量 https://rpm.newrelic.com/public/charts/bIbtQ1mDzMI

数据库响应时间 https://rpm.newrelic.com/public/charts/fPcNL8WA6xx

更新:

做完之后sudo iostat -k 1我开始怀疑了。我得到了很多这样的输出,但在 NR 中却看不到:

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               0.00         0.00         0.00          0          0
sdb               0.00         0.00         0.00          0          0
sdc             546.00      2296.00      6808.00       2296       6808
sdd             593.00      1040.00      7416.00       1040       7416
md1               0.00         0.00         0.00          0          0
md0               0.00         0.00         0.00          0          0
md2            1398.00      3328.00     13064.00       3328      13064
md3               0.00         0.00         0.00          0          0

答案1

简而言之,您需要更快的磁盘。

当进程处于 iowait 状态时,这意味着它们已发出 IO 请求,并且正在等待该请求的结果。如果有足够的 RAM,您的大部分工作集将缓存在 RAM 中,因此读取不会对这种 IO 争用造成很大影响,因此写入通常是罪魁祸首。

关于您的磁盘 IO 图,我怀疑 New Relic 出于某种原因没有正确收集 IO 指标。我建议可能研究一下 Munin 之类的辅助数据收集系统。除此之外,您还可以通过发出以下命令实时查看磁盘 IO:

$ iostat -k 1

这将输出实时磁盘读取和写入(以 kbps 为单位)。我猜你会看到 New Relic 未看到的大量活动。

相关内容