linux – iotop显示kswapd0为99.99%,0%DISK READ和DISK WRITE

我有一个沉重的postgres查询.运行需要十多分钟.我想升级我的硬件以使其运行得更快.我想更多RAM会有所帮助,但我的主板已满,所以我需要一个全新的主板.除非我知道我会得到更好的结果,否则我不想投资.这是我在iotop中看到的:
Total disK READ:      46.81 M/s | Total disK WRITE:       0.00 B/s
  TID  PRIO  USER     disK READ  disK WRITE  SWAPIN     IO>    COMMAND                                                                                                                                               
   27 be/4 root        0.00 B/s    0.00 B/s  0.00 % 99.99 % [kswapd0]
 2514 be/4 postgres   46.81 M/s    2.45 M/s  0.00 % 18.36 % postgres: postgres db1 127.0.0.1(55328) SELECT
    1 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % init
    2 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kthreadd]
    3 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ksoftirqd/0]
    4 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kworker/0:0]
    5 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kworker/u:0]
    6 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [migration/0]
    7 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [watchdog/0]
    8 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [migration/1]
    9 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kworker/1:0]
   10 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ksoftirqd/1]

注意kswapd0如何最大程度地击中硬盘(99.99%IO).但是,kswap0的disK READ和disK WRITE和SWAPIN都为零.什么是kswap0在做什么?它真的击中了我的硬盘吗?是否会为此系统添加更多RAM?

解决方法

你是从错误的角度接近这个.只有在优化了sql之后,才应该考虑在问题上投入更多的RAM / cpu /磁盘(I / O带宽) – 并在确定问题时解决问题.

首先询问Postgres到EXPLAIN(或EXPLAIN ANALYZE)它是如何执行查询的.
优化那些不受欢迎的小猫,然后如果你仍有性能问题进一步调查以确定瓶颈在哪里(sonassi gave you some good suggestions on stuff you should look at in addition to iotop).

如果您在同一台服务器上运行Web堆栈和DB,现在也是分拆它们的好时机……

相关文章

在Linux上编写运行C语言程序,经常会遇到程序崩溃、卡死等异...
git使用小结很多人可能和我一样,起初对git是一无所知的。我...
1. 操作系统环境、安装包准备 宿主机:Max OSX 10.10.5 虚拟...
因为业务系统需求,需要对web服务作nginx代理,在不断的尝试...
Linux模块机制浅析 Linux允许用户通过插入模块,实现干预内核...
一、Hadoop HA的Web页面访问 Hadoop开启HA后,会同时存在两个...