GNU/Linux >> Znalost Linux >  >> Linux

Zahrnuje iowait čas čekání na síťová volání?

Řešení 1:

Znamená to čekání na "File I/O", to jest jakékoli volání pro čtení/zápis na soubor, který je v připojeném souborovém systému, ale také pravděpodobně počítá čas čekání na odložení nebo vyžádané načtení stránek do paměti, např. knihovny, které ještě nejsou v paměti, nebo stránky souborů mmap()'d, které nejsou v paměti RAM.

NEPOČÍTÁ čas strávený čekáním na IPC objekty, jako jsou sockety, roury, ttys, select(), poll(), sleep(), pause() atd.

V zásadě jde o čas, který vlákno stráví čekáním na synchronní disk-IO - během této doby je teoreticky schopno běžet, ale nemůže, protože některá data, která potřebuje, tam ještě nejsou. Takové procesy se obvykle zobrazují ve stavu „D“ a přispívají k průměrnému zatížení krabice.

Je matoucí, že si myslím, že to pravděpodobně zahrnuje IO souboru na síťových souborových systémech.

Řešení 2:

doba iowait je doba, kterou proces stráví v plánovači I/O jádra. Pokud vím, nemá to nic společného se síťovými I/O, pokud jde o běžná soketová připojení. Bude však zahrnovat čas strávený čekáním na síťové systémy souborů, jako je NFS.

Řešení 3:

To ano.

Mimochodem, jeden ze serverů, které spravuji, má vysokou iowait, což je způsobeno špatným připojením NFS.

top - 06:19:03 up 14 days, 10:15,  3 users,  load average: 9.67, 11.83, 12.31
Tasks: 135 total,   1 running, 134 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.2%us,  0.2%sy,  0.0%ni,  0.0%id, 99.7%wa,  0.0%hi,  0.0%si,  0.0%st

top - 06:22:55 up 14 days, 10:19,  3 users,  load average: 10.58, 11.13, 11.89
Tasks: 137 total,   1 running, 136 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.2%sy,  0.0%ni,  0.0%id, 99.8%wa,  0.0%hi,  0.0%si,  0.0%st

A podívejte se na procesy v D Stát.

root     27011  0.0  0.0      0     0 ?        S    03:12   0:00 [nfsd4]
root     27012  0.0  0.0      0     0 ?        S    03:12   0:00 [nfsd4_callbacks]
root     27013  0.0  0.0      0     0 ?        D    03:12   0:01 [nfsd]
root     27014  0.0  0.0      0     0 ?        D    03:12   0:01 [nfsd]
root     27015  0.0  0.0      0     0 ?        D    03:12   0:01 [nfsd]
root     27016  0.0  0.0      0     0 ?        D    03:12   0:01 [nfsd]

Řešení 4:

iowait zahrnuje síťová volání. Říkám to, protože NFS je z pohledu jádra zpracováváno jako mnoho linuxových lokálních souborových systémů:

$ vim linux-2.6.38.2/fs/nfs/file.c 

const struct file_operations nfs_file_operations = {
        .llseek         = nfs_file_llseek,
        .read           = do_sync_read,
        .write          = do_sync_write,
        .aio_read       = nfs_file_read,
        .aio_write      = nfs_file_write,
        .mmap           = nfs_file_mmap,
        .open           = nfs_file_open,
        .flush          = nfs_file_flush,
        .release        = nfs_file_release,
        .fsync          = nfs_file_fsync,
        .lock           = nfs_lock,
        .flock          = nfs_flock,
        .splice_read    = nfs_file_splice_read,
        .splice_write   = nfs_file_splice_write,
        .check_flags    = nfs_check_flags,
        .setlease       = nfs_setlease,
};

Když procesy volají zápis na deskriptor souboru 5, stane se něco takového:

files->fd_array[5]->f_op->write(argv.......)

Procesy tedy nevědí, jaký typ souborového systému používají (vfs magic) a iowait je stejný jako u lokálního souborového systému.


Linux
  1. 10 Linuxových příkazů pro diagnostiku sítě

  2. Linux – Jak zrušit sdílení sítě pro aktuální proces?

  3. Software pro navigaci v síťovém diagramu?

  1. Linux – Podporuje Linux síťová rozhraní přes sériový modem At-command?

  2. Co znamená 'cd -'?

  3. Certifikát RSA nakonfigurovaný pro SERVER NEOBSAHUJE ID, které odpovídá názvu serveru

  1. Použití nástroje SS pro řešení problémů se sítí

  2. Synchronizujte čas serveru Linux se serverem času sítě

  3. Proč Unixový čas začíná na 1970-01-01?