小编Nie*_*ian的帖子

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

我目前真的在为一个性能问题而苦苦挣扎,当我的数据库服务器处于“重”负载时,我所有的数据库查询比平时多花费 1000 倍。

我有一台运行 ubuntu 12.04 并托管我的 postgresql 9.2 数据库的服务器。服务器在 Hetzner.de 上,它是 EX6s(8 核氙气,32Gb ram 和两个 3T HDD,在使用 ubuntus 软件 raid 的 RAID1 设置中)。当我运行大量查询(我经常在晚上完成)时,我发现几乎所有 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 …
Run Code Online (Sandbox Code Playgroud)

postgresql central-processing-unit io performance-tuning

6
推荐指数
1
解决办法
7535
查看次数

Redis 和 Postgresql 在同一台机器上:vm.overcommit_memory=?

在 Redis 文档中,它明确指出vm.overcommit_memory应设置1为确保后台保存更新失败:http://redis.io/topics/faq

然而

在 postgresql 文档中,它说,vm.overcommit_memory应该设置2为避免 post master 进程不会被 oom 杀手杀死:http://www.postgresql.org/docs/9.3/static/kernel-resources.html

现在看来,这是自相矛盾的。我应该怎么办?

我的 redis 数据库的限制为 20GB。服务器拥有 252GB 物理 RAM。Postgresql 很少使用超过 100GB 的物理内存。

PS:我使用的是 ubuntu 14、Redis 3.0 和 Postgresql 9.3

postgresql sysctl redis

3
推荐指数
1
解决办法
1606
查看次数

为什么我的 AWS 实例突然变得无响应,报告高“被盗”CPU

设置 我有一堆 t2.small EC2 实例运行托管称为thumbor的图像处理库,用于简单的动态图像大小调整。原件从 S3 加载。在实例前面我有一个 EC 负载均衡器。我在服务器中安装了 New Relic 服务器监控。

问题 在随机时间,我的服务器突然开始体验极高的平均。响应时间。如果我查看 New Relic 中的统计数据,我唯一看到的是服务器 CPU 持续飙升,报告“被盗”的 CPU。

我的服务器似乎有足够高的容量,同时吞吐量并没有出现任何极端峰值。

我注意到,如果我再次停止/启动服务器。然后被盗的 CPU 消失了,它们再次运行良好 - 直到下一次 - 可能需要数小时或数天。

为什么会发生这种情况,我该怎么办?

新的遗物服务器监控报告突然高 被盗CPU

EC 负载均衡器报告响应时间较长但吞吐量没有显着增加

scaling amazon-ec2 cpu-usage amazon-web-services

2
推荐指数
1
解决办法
1986
查看次数