Debian 8 - Установите последнюю версию MySQL

Первый шаг - выяснить, что является узким местом: дисковый ввод-вывод, сетевой ввод-вывод или ЦП?

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

Если узким местом является сетевой ввод-вывод, запустите процесс сжатия на машине, где хранятся файлы: запуск его на машине с более мощным ЦП помогает только в том случае, если ЦП является узким местом.

Если узким местом является ЦП, то в первую очередь следует рассмотреть возможность использования более быстрого алгоритма сжатия. Bzip2 не обязательно плохой выбор - его основная слабость - скорость распаковки - но вы можете использовать gzip и пожертвовать некоторым размером ради скорости сжатия или попробовать другие форматы, такие как lzop или lzma.Вы также можете настроить уровень сжатия: по умолчанию для bzip2 установлено значение -9 (максимальный размер блока, то есть максимальное сжатие, но также и максимальное время сжатия); установите для переменной среды BZIP2 значение вроде -3 , чтобы попробовать уровень сжатия 3. Этот поток и этот поток обсуждают общие алгоритмы сжатия ; в частности это сообщение в блоге , процитированное Деробертом, дает некоторые тесты, которые показывают, что gzip -9 или bzip2 с низким уровнем могут быть хорошим компромиссом по сравнению с ] bzip2 -9 . Этот другой тест , который также включает lzma (алгоритм 7zip, поэтому вы можете использовать 7z вместо tar --lzma ), предполагает, что lzma на низком уровне может быстрее достичь степени сжатия bzip2. Практически любой выбор, кроме bzip2, улучшит время распаковки. Имейте в виду, что степень сжатия зависит от данных, а скорость сжатия зависит от версии программы сжатия, от того, как она была скомпилирована, и от процессора, на котором она выполняется.

Другой вариант, если узким местом является ЦП и у вас несколько ядер, - распараллелить сжатие. Это можно сделать двумя способами. Один, который работает с любым алгоритмом сжатия, - это сжатие файлов по отдельности (индивидуально или в нескольких группах) и использование parallel для параллельного выполнения команд архивирования / сжатия.Это может уменьшить степень сжатия, но увеличивает скорость извлечения отдельного файла и работает с любым инструментом. Другой подход - использовать параллельную реализацию инструмента сжатия; эта ветка перечисляет несколько.

3
07.02.2016, 06:08
0 ответов

Теги

Похожие вопросы