Примечание: я предполагаю, что у вас здесь есть вращающийся дисковод. Показатели производительности в этих областях сильно различаются для твердотельного хранилища.
В то время как современный накопитель может поддерживать много десятков Мбайт / с при выполнении массовых операций чтения и записи, обе описываемые вами операции включают в себя как минимум две области на диске, поэтому возникает много движений головы. Задержка движений головы оказывает огромное влияние на пропускную способность, потому что каждый раз, когда приводу необходимо переместить головки, возникает задержка, с которой они начинают толкаться в нужном месте, задержка, ожидающая их урегулирования, а затем задержка, ожидающая правильного часть диска крутится мимо. Эти задержки сами по себе невелики (в среднем, даже не 10 нс на движение в среднем для большинства современных накопителей), но если накопитель может выдавать 100 Мбайт / с при полном потоке 10 мс, каждое движение тратит время 1 Мбайт передачи данных. При большом количестве событий привод может легко тратить больше времени на перемещение головок, чем на чтение и запись данных (чтение в течение нескольких десятков мс, перемещение головки, чтение оттуда, перемещение головки, запись на несколько мс, двигай головой ...).
Когда вы дефрагментируете диск, утилита тратит большую часть своего времени на чтение из одного места на диске и запись в другое, небольшое количество блоков за раз. Извлечение содержимого из набора файлов, защищенных паром, еще хуже, поскольку читаются как минимум два файла (исходный файл и один или несколько файлов четности), а также файл вывода, в который производится запись. Даже простая операция копирования большого файла имеет эффект. Все это исключает движения головы, необходимые для поддержания структуры каталогов и карт свободного пространства в актуальном состоянии при перемещении блоков и / или расширении файлов. Выполнение виртуальной машины может потребовать аналогичной нагрузки в зависимости от того, что виртуальная машина делает в данный момент (и виртуальная машина уменьшит объем оперативной памяти, доступной на хост-машине, для использования в качестве кэша / буферов, что может ухудшить ситуацию, и любая операция записи в виртуальной машине может быть намного более требовательным, чем та же самая операция на хосте напрямую, особенно если вы используете "растущие" виртуальные диски).
При всем этом, если приложению с графическим интерфейсом нужно запросить даже небольшой ввод-вывод, оно может быть поставлено в очередь за всеми другими происходящими вещами. Если приложение не является полностью многопоточным, это может привести к тому, что оно "заблокируется" в ожидании завершения операции ввода-вывода, что означает, что оно не может отвечать на какие-либо сообщения (например, "пользователь щелкнул вас здесь") в очередь событий Windows, пока она не получит свою очередь. Чем больше будет происходить одновременно, тем хуже будет становиться, и вы не заметите этого в показаниях "ЦП занят", потому что ЦП не занят - он находится в ожидании завершения операций ввода-вывода в большинстве случаев в этих условиях. ,
Если у вас есть два или более дисков, вы можете значительно уменьшить эффект, который он оказывает на вас, распределяя нагрузку на диски. Если ваша ВМ находится на отдельном диске от вашей основной ОС, они не будут бороться за обслуживание ввода-вывода, когда ВМ занята, пока хост дефрагментирует системный раздел. Кроме того, извлечение архива с одного диска и запись вывода на другой будет заметно быстрее, чем извлечение его на тот же диск, потому что операция чтения напрямую не конкурирует с операцией записи для позиционирования головки на одном диске.