1

I'm new to programming & Linux.

After I finished my programs(do some IO), I found iowait is very high(~65%) while the throughput(~5M/s read + ~5M/s write) and IOPS(50~100 QPS) are low.

iostat -xm 1 reports:

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          12.56    0.00    7.77   64.63    0.00   15.04

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.00   12.00    1.00     0.05     0.00     8.00     0.00    0.31    0.33    0.00   0.31   0.40
sdm               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdg             733.00     0.00   58.00   30.00     3.07     5.23   193.09     0.58    6.50    5.10    9.20   5.00  44.00
sde            1871.00     0.00  107.00   44.00     8.40     2.82   152.26     1.90   14.68   13.50   17.55   5.30  80.00
sdb             773.00     0.00   65.00   30.00     4.00     4.70   187.62     0.88    9.18    8.18   11.33   5.39  51.20
sdj             747.00     0.00   48.00   27.00     3.56     3.03   179.84     0.86   11.52   11.25   12.00   6.56  49.20
sdc             593.00     0.00   46.00   37.00     2.61     3.92   161.16     0.92   11.13   11.13   11.14   6.55  54.40
sdk            1372.00     0.00   79.00   32.00     6.09     3.82   182.85     1.54   14.77   14.68   15.00   6.23  69.20
sdd             911.00     0.00   56.00   31.00     3.81     1.63   128.00     0.74    8.32    7.29   10.19   6.16  53.60
sdf             269.00     0.00   52.00   34.00     1.46     2.74    99.91     0.70    8.09    6.85   10.00   6.33  54.40
sdi             598.00     0.00   59.00   36.00     2.79     5.49   178.36     1.01   10.57    9.02   13.11   6.15  58.40
sdl               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdh             437.00     0.00   47.00   24.00     2.04     0.94    85.75     0.59    8.51    7.32   10.83   5.69  40.40

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          13.31    0.00    7.52   64.55    0.00   14.63

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.00   15.00    0.00     0.06     0.00     8.00     0.00    0.27    0.27    0.00   0.27   0.40
sdm               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdg             680.00     0.00   56.00   32.00     3.29     5.12   195.73     1.08   12.27    9.36   17.38   7.23  63.60
sde             466.00     0.00   62.00   34.00     2.26     3.72   127.50     0.82    8.50    6.26   12.59   4.88  46.80
sdb             506.00     0.00   66.00   34.00     2.46     5.39   160.72     1.27   12.76    8.79   20.47   5.92  59.20
sdj             499.00     0.00   46.00   22.00     2.07     2.18   128.12     0.58    8.29    7.39   10.18   6.29  42.80
sdc            1118.00     0.00   76.00   38.00     4.85     3.82   155.79     1.13    9.68    8.11   12.84   6.25  71.20
sdk            1242.00     0.00   93.00   30.00     5.47     4.97   173.85     1.26   10.11    8.47   15.20   5.89  72.40
sdd             671.00     0.00   52.00   19.00     3.15     0.62   108.96     0.77   11.04   10.77   11.79   6.65  47.20
sdf             686.00     0.00   49.00   34.00     2.99     2.70   140.34     0.87   10.31    9.71   11.18   6.55  54.40
sdi             637.00     0.00   58.00   31.00     2.97     2.79   132.40     0.74    8.36    6.97   10.97   5.62  50.00
sdl               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdh             374.00     0.00   50.00   32.00     1.83     3.70   138.05     0.67    8.20    5.92   11.75   4.98  40.80

can anyone help? thx in advance. How can I fix it?

  • What is your exact disk and filesystem configuration? Including any RAID controller(s), if any? What hardware, including disk types? Your numbers look like the result of small IO operations to random disk offsets. A typical consumer-grade 7200-rpm SATA will be able to handle only about 70 random IO operations/sec, and a 5400-rpm drive only about 50. If the IO operations are small - single disk-block size of 512B or 4kB - you'll see IO rates in the low MB/sec just like you're seeing. The solution? Fix your IO pattern or buy a lot of SSDs. – Andrew Henle Aug 29 '17 at 16:06
  • @AndrewHenle thx. What is your exact disk and filesystem configuration Are there some linux commands which I can execute them and paste the result for you? And it seems the IOPS is about 50, why the ioutil% in the low but the cpu-iowait% in the high? Could you give me some good reference/document/book, maybe I can ask Goolge for help... – songhir Aug 30 '17 at 3:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.