4

У меня есть Hex-core Xeon X5650 под управлением Windows 7 x64.

В настоящее время я делаю одновременное сжатие трех NTFS жестких дисков, по 2 ТБ каждый, с помощью команд:

compact e: /i /c /s
compact f: /i /c /s
compact g: /i /c /s

Получается разумное сжатие: до 40: 1 и обычно 2: 1.

В результате загрузка процессора составляет всего около 3%

Кто-нибудь знает, почему загрузка процессора такая низкая?

Кто-нибудь знает, использует ли ядро сжатия / распаковки в реальном времени Win7 инструкции SSE3 или SSSE3 или SSE4.2 за кулисами?

3 ответа3

4

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

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

Если вы сжимаете файлы размером менее 2 МБ, я ожидаю, что большая часть времени, необходимого для сжатия файлов, занимает операции, необходимые для поиска файла в файловой системе, получения жесткого диска, чтобы предоставить вам данные, а затем записи сжатого файла. данные обратно, затем повторите со следующим крошечным файлом. Алгоритм сжатия, вероятно, может обрабатывать около 40-50 МБ / с на современном компьютере (я бы ожидал, но не уверен в этом), и поэтому время поиска и передачи данных на жестких дисках действительно является ограничивающим фактором для этих файлов, время сжатия, вероятно, быть почти нулевым

Для больших файлов вы почти наверняка увидите более высокую загрузку процессора. Я, конечно, вижу, как минимум 1 ядро вырастает до примерно 50% загрузки ЦП (примерно 8-10% общего ЦП на моем 8-ядерном процессоре), когда я говорю ему сжимать большой каталог в моей системе ...

Я действительно считаю, что время поиска жесткого диска - это ваша проблема, в противном случае вам нужно конкретно посмотреть, какие ядра работают во время сжатия, может случиться так, что процедура сжатия может использоваться только одним потоком за раз, хотя я сомневаюсь, что это так.

3

Нет, нет, нет никакого SSE4, вовлеченного. Ни одна из инструкций SSE4 не может помочь методу LZ(w/77), используемому NTFS. Ваш диск слишком медленный для насыщения процессора сжатием, что в целом хорошо - вы можете жить с файлами сжатого диска. Проблемы начинаются, когда вы делаете небольшие изменения в огромных файлах - он пойдет и перечитает и повторно сжимает весь файл

3

Да, новый набор инструкций SSE4.2 в Intel i7 и Intel Xeon X5650 может использоваться для ускорения сжатия. Учитывая, что загрузка моего процессора составляет 3% при одновременном сжатии трех жестких дисков по 2 ТБ, Win7 почти наверняка использует SSE4.2 за кулисами для сжатия на уровне сектора NTFS.

См. Энергосбережение с помощью аппаратного сжатия GZIP, Tony Summers et. al., AHA Products Group, Comtech EF Data Corporation.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .