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

前端之家收集整理的这篇文章主要介绍了postgresql服务器上奇怪的高CPU I / O等待前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在努力解决当前的性能问题,当我的数据库服务器处于“大量”负载时,我的所有数据库查询都需要比正常情况多1000倍.

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

所以问题是,这个cpu I / O等待的是什么以及它还在等待什么?

添加了所有概述图表,我可以从下面的新遗物中抓住.我在俯瞰什么?一定有明显的瓶颈吗?我应该去哪里潜水?

数据库服务器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
简而言之,您需要更快的磁盘.

当进程处于iowait时,这意味着它们已发出IO请求,并正在等待该请求的结果.如果有足够的RAM,大部分工作集将被缓存在RAM中,因此,读取不会导致大部分IO争用,因此写入通常是罪魁祸首.

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

$iostat -k 1

这将输出实时磁盘读写,以kbps为单位.我怀疑你会看到New Relic没有看到的相当多的活动.

猜你在找的Postgre SQL相关文章