Jestem właścicielem NAS, prowadzę dystrybucję Linuksa. Jest wyposażony w interfejs administracyjny sieci Web, w którym mogę zarządzać kilkoma usługami, prawami użytkowników, a także kiedy powinien iść spać. Moim problemem jest, z jakiegoś powodu, gdy NAS poszedł spać, dysk twardy włącza się ponownie po kilku minutach. Potem wiruje przez jakiś czas, a potem znów śpi. Trwa to w nieskończoność.
Jak mogę spróbować ustalić przyczynę tego? Jestem bardzo nowy w Linuksie, ale udało mi się uzyskać dostęp do konta root, a teraz mam połączenie SSH.
Odpowiedzi:
Inotify-tools to prosty sposób na zrobienie tego. Na ich stronie znajduje się kilka przykładów, które byłyby w stanie zrobić to, co chcesz (zobacz przykład inotifywatch dla naprawdę podstawowego).
źródło
iotop
Może spróbować uruchomić ? W przeszłości uważałem to za przydatne.źródło
Kolejna wskazówka: skorzystaj z Systemtap, na stronie systemtap znajduje się mnóstwo skryptów sondujących, które są wystarczająco przydatne, aby znaleźć winowajcę.
W innym przypadku całkowicie
Jeśli chcesz dowiedzieć się, który proces spowodował spin dysku, możesz zebrać informacje, ustawiając flagę
/proc/sys/vm/block_dump
. Po ustawieniu tej flagi Linux zgłasza wszystkie operacje odczytu i zapisu na dysku, które mają miejsce, a także wszystkie blokady blokowania plików. Dzięki temu możliwe jest debugowanie, dlaczego dysk musi się obracać, i jeszcze bardziej wydłużyć żywotność baterii. Dane wyjściowe block_dump są zapisywane na wyjściu jądra i można je pobrać za pomocą „dmesg” lub sprawdzić w narzędziu kern syslog, gdzie znajduje się miejsce docelowe komunikatów debugowania. Ogólnie powinno być/var/log/debug
. Kiedy korzystasz z block_dump, a twój poziom rejestrowania jądra obejmuje również komunikaty debugowania jądra, prawdopodobnie chcesz wyłączyć klogd, w przeciwnym razie dane wyjściowe block_dump zostaną zarejestrowane, powodując aktywność dysku, której normalnie nie ma.źródło
Musisz poinformować jądro, aby poinformowało cię o wszystkich odczytach / zapisach na dyskach, a następnie spójrz na te informacje.
Więc:
sync
opróżnia wszystkie oczekujące zapisy na dyskach, dzięki czemu zobaczysz tylko nowe odczyty lub zapisy.dmesg -c
pokazuje ci komunikaty jądra i usuwa je (w przeciwnym razie zobaczysz też stare, za każdym razem, gdy uruchamiasz dmesg).grep
filtruje wyjście dmesg pod kątem aktywności dla interesującego cię dysku. Zamień / dev / sda na swoje rzeczywiste urządzenie.Zwykle używam czegoś takiego do spowolnienia dysku, a następnie sprawdzam, kiedy ponownie się uruchamia:
Te
while
kontrole pętli status aktywnego / Idle dyskowego co 10 minut. Kiedy zobaczysz, jak się zwiększa, uruchomdmesg
linię powyżej, aby zobaczyć whodunnit.źródło