Время от времени у меня возникает эта проблема. Совсем недавно я попытался изменить "максимальное количество подключений к кешу" на 1, и это решило проблему (возможно, просто совпадение, но оно было достаточно коррелированным, чтобы размещать здесь).
Вы можете сделать это в Edit-> Account Settings -> Настройки сервера-> Дополнительно ...
Я, кажется, нашел способ приблизить прогресс ext4lazyinit.
TL;DR :см. Сценарий ниже.
Этот метод предполагает, что диск никогда не отключался (и система не перезагружалась )с момента самого первого монтирования раздела, и что вы записали в раздел ровно столько данных, сколько находится в используйте на нем (, чтобы не удалять и не изменять файлы ).
Шаг 1:Сравните размер раздела в fdisk (, преобразованный в килобайты ), с количеством блоков по 1 КБ -, показанным в df. Вычтите (количество 1K -блоков )из (размера раздела в килобайтах ), чтобы получить (примерный размер таблицы инодов ).
РЕДАКТИРОВАТЬ :Пример, fdisk:
Sector size (logical/physical): 512 bytes / 4096 bytes
(...omitted...)
Device Start End Sectors Size Type
/dev/sdd1 2048 11720978398 11720976351 5.5T Linux filesystem
дф:
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/workbackup 5813233164 1217095176 4596121604 21% /mnt/backup_work
11720976351 сектор *512 байт/сектор/1024 = 5860488175,5 кБ (почти 5,5 ТиБ, как говорит fdisk ). Минус df 5813233164 равен 47255011,5 КБ (около 45 ГБ )для приблизительного размера таблицы инодов.
Шаг 2:Получить (общее количество килобайт, записанное в раздел):
awk '{ print $3"\t"$10 }' /proc/diskstats
Выберите правильную строку для своего раздела и преобразуйте ее в киБ.
РЕДАКТИРОВАТЬ :пример:
sdb 260040
sdb1 260040
sdd 2530109116
sdd1 2530108940
При использовании sdd1 в моем случае общее количество записанных килобайт = 2530108940 секторов *512 байт/сектор / 1024 = 1265054470 килобайт (почти 1,2 ТиБ ).
Шаг 3:Требуется только в том случае, если вы уже записали какие-либо данные в файловую систему. Вычтите (количество 1K -ИСПОЛЬЗУЕМЫХ блоков, показанное в df )из (общего количества КБ, записанных в раздел ), чтобы получить (приблизительно КБ, записанных в таблицу инодов ).
РЕДАКТИРОВАТЬ :пример :приблизительное количество килобайт, записанное в таблицу inode = 1265054470 (из шага 2)-1217095176 (см. вывод df на шаге 1 )= 47959294 килобайт (45,7 ГиБ)
Шаг 4:Разделите (приблизительное количество килобайт, записанное в таблицу инодов ), на (приблизительный размер таблицы инодов в килобайтах )и умножьте на 100, чтобы получить прогресс в процентах.
РЕДАКТИРОВАТЬ :пример :приблизительный прогресс = 47959294 / 47255011,5 *100% = 101,5%
Скрипт
Или написать это как неполный скрипт (, где я отказываюсь писать скрипт для вызова fdisk из соображений безопасности):
let sectorsize=$(cat /sys/block/sda/queue/hw_sector_size)
let partsize=$2*$sectorsize/1024
let fssize=$(df -- "$3" | tail -n -1 | awk '{print $2}')
let approxinodetablesize=$partsize-$fssize
let tkw=$(awk "/$1/"' {print $10}' /proc/diskstats | head -n 1)*$sectorsize/1024
let used=$(df -- "$3" | tail -n -1 | awk '{print $3}')
let tkw_inodetable=$tkw-$used
echo "Approximate progress: $(bc -l <<< "$tkw_inodetable*100.0/$approxinodetablesize") %"
Вызов с $1 = "имя раздела" (например. sdd1 ), $2 = "сектора раздела в соответствии с fdisk", $3 = "точка монтирования без косой черты"
Результаты испытаний
Я проверил свой метод только один раз. Настройка:
Раздел 6 ТБ
шифрование с использованием cryptsetup
файловая система создана с параметрами по умолчанию, кроме -m 0
279 ГиБ файлов, записанных в раздел до завершения ext4lazyinit.
Результат:показание 99,7 % на момент завершения:-)
РЕДАКТИРОВАТЬ :тот же диск, после записи на него почти еще одного ТиБ данных, теперь дает оценку 101,5%. Думаю, достаточно точно, чтобы быть полезным.
( вот увидишь, английский не мой родной язык)
По крайней мере, в Ubuntu -Основанные системы (Я использую ZorinOS 15 )Возможно косвенное измерение прогресса следующим образом:
a )Поэтому вам нужно записать «1» в дамп /proc/sys/vm/block _. (Важно :Вы должны установить дамп блока _обратно на «0», если вы готовы к работе):
echo 1 > /proc/sys/vm/block_dump
b )Затем вы получаете информацию по
tail -f /var/log/syslog | grep ext4
вывод будет похож на (, возможно, вам придется подождать, пока ext4lazyinit не получит доступ к устройству):
May 7 13:19:59 xxx kernel: [ 1130.643118] ext4lazyinit(1070): WRITE block 9235888384 on md0 (2048 sectors)
May 7 13:20:01 xxx kernel: [ 1132.594961] ext4lazyinit(1070): WRITE block 9235890432 on md0 (2048 sectors)
May 7 13:20:01 xxx kernel: [ 1132.632755] ext4lazyinit(1070): WRITE block 9235892480 on md0 (2048 sectors)
Вы видите текущий сектор (блок 9235892480 )и устройство (md0 ), на котором работает ext4lazyinit.
Вы можете получить информацию о количестве секторов на вашем устройстве (в моем случае /dev/md0 ). Это возможно, например. с помощью графического инструмента "gparted" или командой "fdisk -l". В моем случае:
sudo fdisk -l /dev/md0
Вывод будет таким:
Festplatte /dev/md0: 5,5 TiB, 5990282952704 Bytes, 11699771392 Sektoren
...
Теперь у вас есть количество секторов, которые в данный момент находятся в обработке, и размер устройства в секторах, так что вы можете рассчитать прогресс ext4lazyinit .
установить сброс блока _обратно в "0"
echo 0 > /proc/sys/vm/block_dump