• 2 Posts
  • 716 Comments
Joined 3 years ago
cake
Cake day: June 12th, 2023

help-circle

  • What are IO and Iotop?

    Input / Output.

    Reading and writing to disk, network, etc.

    iotop shows will show applications writing and reading from disk. It’s going to likely be pretty sporadic.

    What may be happening, and what others are suggesting, is that you’re running out of memory (8gig isn’t that much these days). When that happens the system starts writing memory to disk so it can free more. That’s what you see with the “swap” usage. You can see a bit more about your memory usage with free -m:

    $ free -m
                   total        used        free      shared  buff/cache   available
    Mem:           64141       17077       24020        1981       30419       47063
    Swap:          20479           0       20479
    

    Using swap space isn’t necessarily bad. But reading/writing to it frequently can be a performance killer. You can monitor that with a command called vmstat:

    $ vmstat -w 3
    --procs-- -----------------------memory---------------------- ---swap-- -----io---- -system-- ----------cpu----------
       r    b         swpd         free         buff        cache   si   so    bi    bo   in   cs  us  sy  id  wa  st  gu
       1    0            0     24590136        70748     31066604    0    0   228   309 9959   18   8   1  91   0   0   0
       0    0            0     24595172        70748     31065076    0    0     0   119 3159 6677   2   1  98   0   0   0
       2    0            0     24607436        70748     31070316    0    0  2300    75 3147 6693   2   1  97   0   0   0
       0    0            0     24594892        70748     31070316    0    0     0   584 3417 5950   1   1  98   0   0   0
    

    The columns to pay attention to there are under the ---swap-- header. si is “Swap In” and so is "Swap Out. Those are reads/writes to and from swap space. Seeing a little activity there is fine. It is typically pretty spikey. But if you’re seeing lots of numbers there then it could just indicate that you’re running low on memory and the OS needs to move things to and from disk frequently. While it’s moving things to and from the disk the application trying to use that memory has to wait.


  • How so, given that we immediately re-enable the same swap device right after so that it’s only off for a very brief moment? Let go :)

    $ free -m
                  total        used        free      shared  buff/cache   available
    Mem:           64141       17213       24010        1984       30297       46927
    Swap:          20479           0       20479
    

    See that buff/cache column? That’s memory being used by the system for caching. Files you you open and access get cached into memory as do inodes, filesystem objects, etc. If you run a “find / -type f” twice in a row the second one will be significantly faster because the first run cached a lot of objects into memory.

    By starving the system of memory all that will be flushed and you get more disk access doing things you’re actually trying to do. Whereas things sitting in swap are there because they aren’t currently needed.

    By turning off swap and then back on again you’re just forcing the system to drop all that cache which it will then attempt to reclaim space for and push things back out to swap.

    I don’t know what benefit you think you’ll gain in the process.