Harddrive I / O per Pid

9

apakah ada cara untuk melihat disk I / O per pid / proses? Monitorix menunjukkan kepada saya yang berikut ini dan memperbaiki saya jika saya salah, tetapi sepertinya harddisk memperlambat seluruh sistem: masukkan deskripsi gambar di sini

PEMBARUAN # 1

Di atas tampaknya memberikan gambaran besar di atas segalanya.

  • Mungkinkah saya bertanya kepada Anda apa arti menunggu yang saya tandai merah?
  • Apakah itu menunggu dari disk I / O?

masukkan deskripsi gambar di sini

pengguna2693017
sumber
2
Anda memiliki salah satu di atas, iotop atau pidstat
sebelk
1
@sebelk Hei, saya memperbarui pertanyaan, alangkah baiknya jika Anda bisa melihatnya. :)
user2693017
1
itu tidak benar-benar mungkin untuk memilih jawaban terbaik jadi saya memutuskan untuk mengambil salah satu yang paling membantu saya dan terbalik yang lain.
user2693017
@ user2693017 - itu tidak masalah, karena OP itu adalah hak prerogatif Anda yang paling sesuai dengan kebutuhan Anda.
slm

Jawaban:

3

Sulit bagi saya untuk melihat gambar ini dengan baik, tetapi:

Lihatlah pria di atas:

Saya ingin tahu apakah Anda akhirnya menanyakan hal lain, di bagian CPU yang Anda miliki:

Every  line contains the percentage of cpu time spent in kernel mode by all
active processes (`sys'), the percentage of cpu time consumed in user mode
(`user') for all active processes (including processes running with a nice
value larger than zero), the  percentage  of  cpu  time spent  for  interrupt
handling  (`irq')  including  softirq, the percentage of unused cpu time while
no processes were waiting for disk-I/O (`idle'), and the percentage of unused
cpu time while at least one process was waiting for disk-I/O (`wait').

In case of per-cpu occupation, the last column shows the cpu number and the
wait percentage (`w') for that cpu.  The number of lines showing the per-cpu
occupation can be limited.

Bagaimanapun, Anda dapat membaca statistik khusus disk:

d    Show disk-related output.

            When "storage accounting" is active in  the  kernel,  the  
            following  fields  are shown: process-id, amount of data read 
            from disk, amount of data written to disk, amount of data that 
            was written but has been withdrawn again (WCANCL), disk 
            occupation percentage and process name.

Serta opsi ini.

D

    D   Sort  the  current  list  in the order of disk accesses issued.  
        The one-but-last column changes to ``DSK''.
        ...

RDDSK

RDDSK   When the kernel maintains standard io statistics (>= 2.6.20):

        The  read  data  transfer issued physically on disk (so reading from 
        the disk cache is not accounted for).
        ...

WRDSK

WRDSK   When the kernel maintains standard io statistics (>= 2.6.20):

        The  write  data  transfer  issued physically on disk (so writing to 
        the disk cache is not accounted for).  This counter is maintained 
        for the  application process  that writes its data to the cache 
        (assuming that this data is physically transferred to disk later 
        on). Notice that disk I/O needed for swapping is not taken into 
        account.
        ....

LVM / MDD / DSK

LVM/MDD/DSK
        Logical volume/multiple device/disk utilization. 

        Per active unit one line is produced, sorted on unit activity.
        Such  line shows the name (e.g. VolGroup00-lvtmp for a logical
        volume or sda for a hard disk), the busy percentage i.e. the
        portion of time that the unit was busy handling requests
        (`busy'),  the  number  of  read  requests  issued  (`read'), the
        number of write requests issued (`write'), the number of KiBytes
        per read (`KiB/r'),  the  number of  KiBytes  per write
        (`KiB/w'), the number of MiBytes per second throughput for reads
        (`MBr/s'),  the  number  of  MiBytes  per second  throughput  for
        writes (`MBw/s'), the average queue depth (`avq') and the average
        number of milliseconds needed by a request (`avio') for seek,
        latency and data transfer.

        If the screen-width does not allow all of these counters, only a
        relevant subset is shown.

        The  number of lines showing the units can be limited per class
        (LVM, MDD or DSK) with the 'l' key or statically (see separate
        man-page of atoprc).  By specifying the  value  0  for  a
        particular class, no lines will be shown any more for that class.
sebelk
sumber
Terima kasih banyak. Jika sulit karena ukurannya, ambil tautan langsung: i.stack.imgur.com/5ifJi.png
user2693017
8

Saya percaya ada banyak alat. Salah satunya adalah pidstat:

pidstat -d 5

Menunjukkan I / O proses setiap 5 detik.

Contoh

$ pidstat -d 5
Linux 3.12.11-201.fc19.x86_64 (greeneggs.bubba.net)     03/04/2014  _x86_64_    (4 CPU)

06:19:05 PM   UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
06:19:10 PM  1000     29486      0.00    317.93      0.00  chrome

06:19:10 PM   UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
06:19:15 PM  1000     29486      0.00    368.00      0.00  chrome

06:19:15 PM   UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
06:19:20 PM  1000     29486      0.00    591.62    836.73  chrome

06:19:20 PM   UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
06:19:25 PM  1000      2410      0.00      0.80      0.00  mono
06:19:25 PM  1000     29486      0.00    262.40      0.00  chrome
^C

Average:      UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
Average:     1000      2410      0.00      0.20      0.00  mono
Average:     1000     29486      0.00    385.02    209.29  chrome

Dari titik di mana Anda melihat Ctrl+ C(alias. ^C) Adalah total untuk jangka waktu menjalankan di atas.

slm
sumber
bagus, apakah mungkin untuk membiarkannya berjalan selama 1 jam dan mendapatkan hasil keseluruhan?
user2693017
mungkin, saya belum mencobanya. Anda juga dapat menentukan PID yang ingin Anda periksa.
3

Lihatlah U&L T&J ini berjudul: Amazon EC2 contoh mikro banyak permintaan IO , di mana saya memberikan detail di sekitar alat yang disebut fatrace. Saya juga membahasnya dalam T&J ini berjudul: Menentukan File Tertentu yang Bertanggung jawab untuk I / O Tinggi .

fatrace

Ini adalah tambahan baru untuk Kernel Linux dan yang disambut, jadi itu hanya di distro yang lebih baru seperti Ubuntu 12.10. Sistem Fedora 14 saya kurang 8 -).

Ini memberikan akses yang sama dengan yang Anda dapatkan melalui inotify tanpa harus menargetkan direktori dan / atau file tertentu.

$ sudo fatrace
pickup(4910): O /var/spool/postfix/maildrop
pickup(4910): C /var/spool/postfix/maildrop
sshd(4927): CO /etc/group
sshd(4927): CO /etc/passwd
sshd(4927): RCO /var/log/lastlog
sshd(4927): CWO /var/log/wtmp
sshd(4927): CWO /var/log/lastlog
sshd(6808): RO /bin/dash
sshd(6808): RO /lib/x86_64-linux-gnu/ld-2.15.so
sh(6808): R /lib/x86_64-linux-gnu/ld-2.15.so
sh(6808): O /etc/ld.so.cache
sh(6808): O /lib/x86_64-linux-gnu/libc-2.15.so

Di atas menunjukkan kepada Anda ID proses yang melakukan pengaksesan file dan file mana yang diaksesnya, tetapi tidak memberikan Anda keseluruhan penggunaan bandwidth, sehingga setiap akses tidak dapat dibedakan dengan akses lainnya.

CATATAN: fatrace dapat mengambil -p PIDargumen sehingga Anda dapat mengarahkannya untuk menonton PID tunggal jika Anda menginginkannya.

slm
sumber
Alat yang sangat bagus, terima kasih saya tidak tahu!
sebelk
Anda memiliki alat yang terkait dan menyenangkan yaitu ftop
sebelk
@sebelk - yup terima kasih, sudah diinstal juga.
slm
Saya suka alat ini. Ini menunjukkan tugas mana yang mengakses file pada disk. Namun file-file ini juga dapat mmaped, sehingga hanya akses buffer yang terjadi dan tidak ada akses IO.