Я бегаю du -sh
по разным каталогам, чтобы найти дисковых свиней. У меня есть два идентичных сервера (Dell PE2850s), оба с RHEL5, и это займет значительно больше времени, чтобы работать du
на одном сервере над другим.
Например, выполнение du -sh /opt/foobar
займет 5 минут на сервере A (на котором около 25 ГБ), а на сервере B та же команда с тем же объемом данных сообщит мне почти мгновенно. Я не вижу ничего явно очевидного при беге сверху и т. Д.
Любые советы высоко ценится.
du -s
зависит не от размера данных, а от количества файлов. Оба дерева каталогов имеют одинаковое количество файлов?du
будет работать намного быстрее, если все метаданные каталога (например, размеры файлов) в настоящее время кэшируются. Если это так по какой-либо причине на одном сервере, а не на другом, это приведет к большим различиям.Ответы:
Если у вас есть огромное количество файлов в этом каталоге, и содержимое каталога постоянно меняется, то сама запись каталога со временем фрагментируется. Затем, когда ОС читает содержимое каталога, будет много и много ненужных операций поиска на диске. Это происходит особенно с файловыми системами ext * (хотя ext4 может быть лучше) и со старыми файловыми системами ReiserFS v3.x (если они заполнены на 85% или около того).
Решение довольно простое:
Конечно, если все кэшируется в ОЗУ, это не имеет большого значения; обычно Linux кеширует часто используемые файлы и каталоги довольно агрессивно. Если вы действительно хотите сохранить содержимое этих каталогов в оперативной памяти, вы можете поместить что-то вроде
ls -lah /your/dir 2>&1 >/dev/null
своего cron.РЕДАКТИРОВАТЬ: О, одна вещь пришла мне в голову. Если на вашем сервере есть RAID-контроллер с резервным питанием от батареи с некоторым кешем, убедитесь, что батарея в порядке. Я видел ситуации, когда батарея разряжена, а контроллер полностью отключает кэш, что очень сильно портит производительность. Например, серверы HP могут сообщать в журналах iLO что-то о батарее контроллера; в реальной панели состояния сервера все выглядит нормально и зеленым, но только запись в журнале скажет вам об этом.
источник
umount
диск иfsck
он?ionice -c3 -p $(pidof cp)
или около того.Я предлагаю попробовать простую команду du без каких-либо переключателей. В конечном итоге вы увидите, какой каталог замедляет процесс. Это может быть неисправный диск или какая-то другая причина ...
источник