NFsec Logo

Co tak rzeźbi po dysku?

05/09/2012 w Administracja, Debug Brak komentarzy.  (artykuł nr 367, ilość słów: 892)

U

tylizację wybranego dysku w systemie Linux możemy obserwować za pomocą narzędzia iostat. Niestety dostarcza ono tylko ogólnych informacji na temat zapisów i odczytów z dysku z dokładnością, co do partycji. Gorzej jeśli interesuje nas konkretny użytkownik lub daemon, który powoduje konkretną aktywność. Warto wtedy skorzystać z inotify-tools

Inotify-tools jest biblioteką C oraz zestawem narzędzi dla Linuksa dających prosty interfejs dla podsystemu inotify. Dzięki temu zestaw oferowanych programów może zostać użyty do monitorowana wybranych zdarzeń zachodzących w systemie plików. Na przykład na partycji /dev/sda7 przez użytkownika user zostanie odpalone specjalnie polecenie generujące obciążenie dysku:

dd if=/dev/zero of=/home/user/output.img bs=8k count=256k

W drugiej konsoli administrator zauważa wysoką utylizację dysku spowodowaną zapisem:

[root@darkstar ~]# iostat 2 /dev/sda
Linux 2.6.32-279.1.1.el6.i686 (darkstar) 	03.09.2012 	_i686_	(2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          30,53    0,51   24,43   33,59    0,00   10,94

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda             183,50         0,00    179820,00          0     359640

Sprawdza dokładnie, na której partycji jest największa aktywność:

[root@darkstar ~]# iostat 2 -p /dev/sda
Linux 2.6.32-279.1.1.el6.i686 (darkstar) 	03.09.2012 	_i686_	(2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0,00    0,76   23,16   64,38    0,00   11,70

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda             178,00         0,00    180240,00          0     360480
sda1              0,00         0,00         0,00          0          0
sda2              0,00         0,00         0,00          0          0
sda3              0,00         0,00         0,00          0          0
sda4              0,00         0,00         0,00          0          0
sda5              2,00         0,00        16,00          0         32
sda6              0,00         0,00         0,00          0          0
sda7            176,00         0,00    180224,00          0     360448
sda8              0,00         0,00         0,00          0          0

I dzięki narzędziu inotifywatch z pakietu inotify-tools ustawia rekursywny nasłuch na katalog /home, który odpowiada partycji /dev/sda7:

[root@darkstar ~]# inotifywait -m -r --format '%:e %f' /home
Setting up watches.  Beware: since -r was given, this may take a while!
MODIFY output.img
...
MODIFY output.img

Teraz wystarczy znaleźć namierzony plik:

[root@darkstar ~]# find /home -name output.img
/home/user/output.img

Jeśli w systemie występuje więcej niż jedno źródło obciążenia – możemy skorzystać z inotifywatch, które w określonym przedziale czasu (60 sekund) przestawi statystyki dla wybranych metod (w poniższym przykładzie: access, modify):

[root@darkstar ~]# inotifywatch -v -e access -e modify -t 60 -r /home
Establishing watches...
Setting up watch(es) on /home
OK, /home is now being watched.
Total of 23 watches.
Finished establishing watches, now collecting statistics.
Will listen for events for 60 seconds.
total  modify  filename
436832  436832  /home/user1/
225527  225527  /home/user2/

Więcej informacji: man inotifywatch, man inotifywait

Kategorie K a t e g o r i e : Administracja, Debug

Tagi T a g i : , , , , , ,

Komentowanie tego wpisu jest zablokowane.