Korzystam du -sh
z różnych katalogów, aby znaleźć wieprze dyskowe. Mam dwa identyczne serwery (Dell PE2850), oba z RHEL5 i znacznie dłużej będzie działać du
na jednym serwerze na drugim.
Na przykład wykonanie du -sh /opt/foobar
tego zajmie 5 minut na serwerze A (który ma około 25 GB), a na serwerze B to samo polecenie z taką samą ilością danych zgłosi się do mnie niemal natychmiast. Nie widzę nic rażąco oczywistego podczas biegania na górze itp.
Wszelkie porady są mile widziane.
du -s
nie zależy od wielkości danych, ale raczej od liczby plików. Czy oba drzewa katalogów mają podobną liczbę plików?du
będzie działać znacznie szybciej, jeśli wszystkie dane meta katalog (jak rozmiary plików) jest aktualnie buforowane. Jeśli tak jest z jakiegokolwiek powodu na jednym serwerze, a nie na drugim, spowoduje to duże różnice.Odpowiedzi:
Jeśli w tym katalogu znajduje się ogromna liczba plików, a zawartość katalogu ciągle się zmienia, sam wpis katalogu ulega z czasem fragmentacji. Następnie, gdy system operacyjny odczytuje zawartość katalogu, będzie wiele niepotrzebnych operacji na dysku. Dzieje się tak zwłaszcza w przypadku systemów plików ext * (ext4 może być lepszy) i starych systemów plików ReiserFS v3.x (jeśli zostały one wypełnione w około 85%).
Rozwiązanie jest dość łatwe:
Oczywiście, jeśli wszystko jest buforowane w pamięci RAM, nie ma to większego znaczenia; zwykle Linux buforuje często używane pliki i katalogi dość agresywnie. Jeśli naprawdę chcesz zachować zawartość tych katalogów w pamięci RAM, możesz umieścić coś podobnego
ls -lah /your/dir 2>&1 >/dev/null
do swojego crona.EDYCJA: Och, jedna rzecz przyszła mi do głowy. Jeśli na serwerze znajduje się kontroler RAID z podtrzymaniem bateryjnym i pamięcią podręczną, sprawdź, czy bateria jest w porządku. Widziałem sytuacje, w których bateria jest wyczerpana, a kontroler całkowicie wyłącza pamięć podręczną, co bardzo psuje wydajność. Na przykład serwery HP mogą powiedzieć w dziennikach iLO coś o baterii kontrolera; w panelu kontrolnym aktualnego stanu serwera wszystko wydaje się być w porządku i zielone, ale tylko wpis dziennika powie ci o tym.
źródło
umount
dysk ifsck
to?ionice -c3 -p $(pidof cp)
i tak dalej.Proponuję wypróbować proste polecenie du bez żadnych przełączników. W końcu zobaczysz, który katalog spowalnia proces. Może to być wadliwy dysk lub inny powód ...
źródło