LINUX.ORG.RU

ext4 сильно тормозит при чтении

 


0

1

Здравствуйте.

Имеется комп с аппаратным RAID 1. Имеется на нём раздел в 2Tb из двух винтов. Имеется openSuSe 12.3 с ядром 3.7.10-1.16-default. Имеется почти полностью занятый партишн ext4 размером с раздел и с кучей файлов. Недавно заметил, что скорость чтения на некоторых файлах падает до 1 Mb/s. fsck отрабатывая за секунду говорит, что всё ок.

Что делать? Куда копать? Как лечить?

Может, фрагментироваться начала?

Bagrov ★★★★★
()
touch /forcefsck && reboot || init 6

Естественно, тронуть файл надо в корне каждого раздела, чью ФС надобно проверить.

Deleted
()

Чтобы понять как лечить, нужно понять, что происходит. Для начала лучше всего определится, стабильно ли некоторые файлы читаются медленно. То есть посмотреть скорость чтения, потом прочитаь другие файлы, чтобы вытеснить тестовые файлы из кеша, потом снова посмотреть скорость чтения.

Если raid рабочий (/proc/mdstat) и SMART в порядке, можно посмотреть фрагментированность файла с помощью команды debugfs:

debugfs -R "stat /path/to/file" /dev/<partition>
Там будет выдан список блоков файла, можно каким-нибудь скриптом определить из скольки непрерывных кусков состоит файл. Если файл сильно фрагментирован, его можно попробовать дефрагментировать, но на сильно забитой ФС, ИМХО, не особо получится.

Ещё можно чем-нибудь посмотреть скорость чтения данных с диска, но не hdparm -t, который читает небольшой блок в начале, а со всего объёма, с графиком. На форумах жаловались, что некоторые WD способны деградировать до очень низкой скорости чтения/записи, но работать без ошибок.

mky ★★★★★
()
Ответ на: комментарий от mky

/proc/mdstat пустой. RAID не умеет такого.

Нашёл медленно читающийся файл. Фрагментирован - из 4х кусков. Смотрел filefrag.

А есть стредства для дефрагментации ext4? Или только копированием на другой носитель и обратно?

Barlog_M
() автор топика
Ответ на: комментарий от Barlog_M

Фрагментирован - из 4х кусков.

Файл большой (чтобы заметить низкую скорость) и скорость падает до 1МБ/с? неверю, чтобы 4 куска файла давали бы такой эффект.

sdio ★★★★★
()

Лог raid'а смотри. Возможно идет восстановление.

soomrack ★★★★★
()
Ответ на: комментарий от Barlog_M

Фрагментирован - из 4х кусков. Смотрел filefrag.

Для всей ФС статистику «fsck -fnv» покажет, процент non-contiguous.

Еще ничего конкретного, но вот это тоже можно потыкать:

почти полностью занятый партишн

qux
()

Имеется почти полностью занятый партишн ext4 размером с раздел и с кучей файлов. Недавно заметил, что скорость чтения на некоторых файлах падает до 1 Mb/s.

всё правильно. Почти полностью заполненное устройство хранения начинает сильно тупить. Это ещё Кнут в 1960х подметил, и обосновал кучей матана.

drBatty ★★
()
Ответ на: комментарий от drBatty

Расскажи ещё про свой дворовой опыт и прочий псевдоумный тупняк.

anonymous
()
Ответ на: комментарий от anonymous

Расскажи ещё про свой дворовой опыт и прочий псевдоумный тупняк.

при чём тут мой дворовый опыт?

Да, ты в армии служил?

с какой целью интересуешься? Будешь к каждому моему посту приписывать «а drBatty даже в армию не взяли!» или «а ещё drBatty все мозги выбили в Чечне!», в зависимости от содержимого моего военного билета?

drBatty ★★
()
Ответ на: комментарий от Bagrov

Бро, когда удаляют ответы на некорректные сообщения, тоже снимают скор.

если-бы не снимали, у меня давно-бы было 5 зелёных звёзд.

drBatty ★★
()
Ответ на: комментарий от Barlog_M

Про e4defrag уже сказали, но, ИМХО, 4 куска так скорость чтения файла не снизят, не нужна этому файлу дефрагментация.

/proc/mdstat пустой

Да, не внимательно прочитал, не заметил, что аппаратный. Некоторые RAID умеют отдавать SMART, или может подключть диск на время напрямую, чтобы прочитать SMART и прогнать SMART-тесты, главное, чтобы RAID-контроллер принял диск обратно и RAID не рассыпался.

Но в начале лучше попробовать посмотреть скорость поблочного чтения с RAID устройства. В принципе можно не отмонтировать файловую систему с RAID, просто измерять скорость когда нагрузка минимальная. Для начала можно:

ddrescue --force -v -v /dev/sda /dev/null > /tmp/spd.log
Потом посмотреть /tmp/spd.log, там правда будет мусор из Esc-последовательностей, но будут значения «current rate» и эта скорость не должна сильно изменятся.

mky ★★★★★
()
Ответ на: комментарий от mky

Большое спасибо за разъяснения. Дефрагментация не помогла. Похоже проблема действительно с дисками.

Barlog_M
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.