Я догадываюсь, что некоторая прерывистая ошибка может проявиться только при медленной скорости чтения с диска. Поиск и устранение неисправностей затруднен, потому что я не могу надежно воспроизвести его.
Если не считать простое поглощение ввода-вывода с процессом с высоким приоритетом, могу ли я каким-то образом симулировать медленный жесткий диск?
Используйте nbd , Сетевое блочное устройство, а затем ограничьте скорость доступа к нему, скажем, trickle
.
sudo apt-get install nbd-client nbd-server trickle
Есть USB-концентратор 1.1? Или медленная SD-карта? Они снизят скорость до 10 Мбит / с.
Это ни в коем случае не полное решение, но оно может помочь в сочетании с другими мерами: существует планировщик ввода-вывода во многом как планировщик процесса, и его можно настроить.
Прежде всего можно на самом деле выбрать среди различных планировщиков:
~# cat /sys/block/sda/queue/scheduler
noop anticipatory deadline [cfq]
~# echo "deadline" > /sys/block/sda/queue/scheduler
~# cat /sys/block/sda/queue/scheduler
noop anticipatory [deadline] cfq
~#
deadline
может помочь Вам получить более решительно восстанавливаемые результаты.
noop
, поскольку его имя подразумевает, является безумно немым, и позволит Вам разрушить абсолютное опустошение на производительности ввода-вывода с небольшим усилием.
anticipatory
и cfq
обе попытки быть умным об этом, хотя cfq
обычно более умные из двух. (Как я вспоминаю, anticipatory
на самом деле планировщик прежней версии от прямо, прежде чем ядро начало поддерживать несколько планировщиков.)
Вы можете попробовать запустить копию большого файла, такого как iso установочного диска Ubuntu, и запустить его дважды. Это должно немного замедлить ваш диск.
Вы можете использовать виртуальную машину и доступ к дроссельной заслонке ... вот несколько советов о том, как это сделать в Virtualbox 5.8. Ограничение пропускной способности для образов дисков https://www.virtualbox.org/manual/ch05.html#storage-bandwidth-limit
Помимо попыток замедлить сам жесткий диск, вы можете попробовать использовать инструменты сравнения файловой системы, такие как bonnie ++ , которые могут вызвать значительный дисковый ввод-вывод.
sudo apt-get install bonnie++
Почему бы не запустить iotop
и посмотреть, не вызывает ли процесс, который вы пытаетесь отладить, много операций чтения / записи на диск?
Я недавно выяснил установку, где я имею
google-drive-ocamlfuse
, Если задержка 16 секунд не является достаточно медленной, можно просто отключить маршрутизатор.
Для ссылки, вот исходный вариант использования, где я получил идею для этого: https://github.com/goavki/apertium-apy/pull/76#issuecomment-355007128
Как насчет make -j64
? в статьях, описывающих этот новый 200-строчный патч производительности, make -j64
была задача, потребляющая много компьютерных ресурсов
# echo 1 > /proc/sys/vm/drop_caches
Это замедлит вас:)
Это заставит вас читать с диска вместо использования кэшированной страницы.
Если вы действительно хотите получить изощренную информацию, вы можете делать что-то вроде фальшивой ошибки чтения каждый раз, используя среду инжекции ошибок scsi.