Sabit sürücüyü neyin döndürdüğünü bulma


10

Biraz Linux dağıtımı yapan NAS'ın sahibiyim. Çeşitli hizmetleri, kullanıcı haklarını ve ne zaman uykuya geçmesi gerektiğini yönetebileceğim bir web yönetimi ön ucuyla birlikte geliyor. Benim sorunum, bir nedenden ötürü, NAS uykuya daldığında, sabit disk birkaç dakika sonra tekrar açılır. Sonra bir süre dönecek, sonra tekrar uyuyacak. Bu süresiz olarak devam ediyor.

Bunun nedenini nasıl belirleyebilirim? Linux için çok yeniyim, ancak root erişimi elde etmeyi başardım ve şimdi bir SSH bağlantım var.


Bu çok eskidir, ancak yine de alakalı ipuçları olabilir.
Gilles 'SO- kötü olmayı bırak'

NAS kutusuna web / frontend arayüzü ile analitik / benzeri bir eklentiniz var mı? NAS kutusu detayları nedir? Disk etkinliğini kontrol etmek için bazı systemtap araçlarının kullanılabileceğini merak ediyorum. systemtap yalnızca Linux çekirdeğinin sonraki sürümlerinde kullanılabilir.
Nikhil Mulley

NAS bir Lacie d2 Ağı 2'dir. Hiçbir eklenti seçeneği yoktur, ancak sanırım içine bir şey yükleyebilirim. Bir Green Unicorn web sunucusu çalıştırır. Çekirdek 2.6.31.14-svn6790'dır.
Andreas

Yanıtlar:


6

inotify-tools bunu yapmanın basit bir yoludur. Sitelerinde istediğinizi yapabileceğiniz birkaç örnek vardır (gerçekten basit bir örnek için inotifywatch örneğine bakın).


Şu anda bunu araştırıyorum. İlk olarak, bir ARMv5TE işlemci için kaynak derlemeliyim. Bu yeterince zor olabilir :)
Andreas


2

Başka bir ipucu: Systemtap'ı kullanın, systemtap sitesinde suçluyu bulabilecek kadar yararlı bir sürü prob komut dosyası var.

Başka bir durumda tamamen,

Hangi işlemin diskin dönmesine neden olduğunu bulmak istiyorsanız, bayrağı ayarlayarak bilgi toplayabilirsiniz /proc/sys/vm/block_dump. Bu bayrak ayarlandığında, Linux gerçekleşen tüm disk okuma ve yazma işlemlerini raporlar ve dosyalara yapılan tüm kirlenmeleri engeller. Bu, bir diskin neden dönmesi gerektiğini hata ayıklamayı ve pil ömrünü daha da artırmayı mümkün kılar. Block_dump çıktısı çekirdek çıktısına yazılır ve "dmesg" kullanılarak alınabilir veya hata ayıklama iletilerinin hedefi için syslog kern tesisinize bakılabilir. Genellikle böyle olmalıdır /var/log/debug. Block_dump komutunu kullandığınızda ve çekirdek günlük kaydı düzeyinizde de çekirdek hata ayıklama iletileri varsa, muhtemelen klogd'u kapatmak istersiniz, aksi takdirde block_dump çıktısı kaydedilir ve normalde orada olmayan disk etkinliğine neden olur.


2

Çekirdeğe disklere yapılan tüm okuma / yazma işlemleri hakkında bilgi vermesi gerektiğini söylemelisiniz, o zaman bu bilgilere bakmanız gerekir.

Yani:

# sync
# echo 1 > /proc/sys/vm/block_dump
# dmesg -c | grep '/dev/sda'

syncbeklemedeki tüm yazma işlemlerini disklere temizler, böylece yalnızca yeni okumaları veya yazmaları görürsünüz.
dmesg -csize çekirdek mesajlarını gösterir ve bunları temizler (aksi takdirde dmesg'i her çalıştırdığınızda eski mesajları da görürsünüz). grepİlgilendiğiniz disk için etkinlik için dmesg çıktısını filtreler. / dev / sda yerine gerçek aygıtınızı yazın.

Genellikle diski döndürmek için böyle bir şey kullanırım, sonra tekrar ne zaman döndüğünü kontrol ederim:

# sync
# hdparm -y /dev/sda
# while true; do hdparm -C /dev/sda ; sleep 600 ; done

whileDöngü kontrolleri diski aktif / boşta durumunu her 10 dakika. Güç dmesgverildiğini gördüğünüzde, whodunnit'i görmek için yukarıdaki satırı çalıştırın .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.