Использование RamDrive 18.04.01 LTS с HandBrake
Я хочу использовать часть моей очень недоиспользуемой ОЗУ для создания ОЗУ, чтобы какое-то тяжелое в системе программное обеспечение могло получить небольшую помощь при использовании этой ОЗУ.
Я специально хочу запустить Handbrake, желательно с графическим интерфейсом. У меня есть соответствующее программное обеспечение и информация о том, как создать настоящий RAM-диск, поэтому мне там не нужна помощь, но я хотел знать,
могу ли я установить Handbrake так, чтобы он отдавал предпочтение диску ОЗУ над каталогом временных файлов при выполнении некоторых вычислений, что может помочь в улучшении, а если нет...
можно ли установить мой Handbrake где-то определенно (например, на настоящий RAM-диск, чтобы он автоматически просто использовал его; я заметил, что Ubuntu никогда не запрашивает место для установки, она просто помещает то, что хочет, куда хочет, и мы имеем маленький выбор в этом вопросе).
Но я также хотел бы знать ответ на вопрос "могу ли я установить что-либо на RAM-диск, или он может использоваться только с вещами, которые имеют настройки, позволяющие принудительно использовать RAM-диск в качестве временного рабочего диска, или все программное обеспечение установлено там, где оно есть, и оно не подлежит изменению (с точки зрения непрофессионала).
Ручной тормоз заставляет мой процессор работать очень сильно, и он очень сильно нагревается, что было еще одной причиной, которая была выбрана в качестве случайного примера ранее.
2 ответа
Обычно приложения в Linux используют выделенные каталоги tmp, /tmp или /var/tmp, для своих временных файлов. /tmp
предположительно для быстрого краткосрочного использования, тогда как /var/tmp
должен сохраняться между сапогами. Если ваша цель - уменьшить износ SSD-диска, то перемещение / tmp в RAM устранит активность SSD-диска при записи приложений во эти временные каталоги.
Вы можете двигаться /tmp
в ОЗУ добавив эту строку в ваш /etc/fstab
:
tmpfs /tmp tmpfs rw,nosuid,nodev,noatime 0 0
Объем памяти, используемой файловой системой tmpfs, увеличивается и уменьшается в зависимости от потребностей. Если памяти не хватает, используется своп. По умолчанию Ubuntu уже использует tmpfs по умолчанию для таких каталогов, как /run
, /dev/shm
и другие.
Очевидно, это общий ответ. Это поможет вам и для Handbrake при условии, что приложение также использует / tmp для своих временных файлов.
Handbrake - это инструмент для конвертации видео. Инструменты для конвертирования видео, как правило, сильно нагружают CPU/GPU, а не IO.
При кодировании на процессоре я обычно получаю 25-100 кадров в секунду. Если у вас есть фильм со скоростью 50 Мбит / с со скоростью 50 Мбит / с, это означает, что вы должны принимать 200 Мбит / с или 25 Мбит / с. Это последовательное чтение из файла, что является самым простым и наиболее предсказуемым вводом-выводом. Даже вращающийся дешевый жесткий диск для ноутбука со скоростью 5400 об / мин не будет иметь проблем с этим.
Даже если вы увеличите коэффициент кодирования в четыре раза, до 400 кадров в секунду, это всего лишь 100 МБ / с. Это в пределах досягаемости 7200rpm жестких дисков, и тривиально для SSD. Вы, вероятно, увидите нулевое улучшение в скорости кодирования, используя оперативную память для кэширования данных для преобразования видео, если у вас нет очень специализированного оборудования для кодирования видео. В этом случае, вероятно, стоит использовать быстрые твердотельные накопители, которые могут легко обрабатывать гигабайты в секунду.
Оперативная память имеет смысл, только если дисковый ввод-вывод является вашим узким местом. Для оптимизации вы должны сначала определить фактическое узкое место, а затем выяснить, что вы можете сделать, чтобы обойти это узкое место.
Кроме того, выделение ОЗУ для ОЗУ может замедлить работу. Linux довольно хорошо кеширует вещи в неиспользуемой оперативной памяти. Однако, если вы заставляете его кэшировать некоторые вещи с помощью выделенного ОЗУ, вы рискуете, что вещи, которые могут выиграть от кэширования, не будут кэшироваться.
Конечно, есть ситуации, когда вы хотите явно кэшировать вещи в оперативной памяти...
Вы должны кэшировать некоторые входные данные для обработки, быстро. Это может быть, например, поток данных от какого-либо внешнего датчика, который доставляет данные в течение короткого периода времени со скоростью, превышающей скорость вашего диска. В этом случае кэширование перед записью на диск является хорошей стратегией.
У вас есть процесс, связанный с IO, который должен временно хранить набор данных.
У вас есть (небольшие) объемы данных, которые вас не волнуют, но вам нужно временно. Например, это могут быть phpsession-файлы для веб-сервера.
Во многих случаях второй пример может быть заменен трубами, так что хранение не требуется. Хранение потребуется только в тех случаях, когда полный набор данных должен быть доступен сразу.
В большинстве других случаев вам все равно придется читать или записывать данные на диск. Если вы хотите сохранить результат транскодирования, вам нужно перенести его на диск. Если вы хотите переместить видео для транскодирования на RAM-диск, вам сначала нужно прочитать его с диска и так далее...
Помните, что ОС по умолчанию кэширует файлы в оперативной памяти. Всякий раз, когда файл читается операционной системой, он кэшируется в оперативной памяти. Когда файл записывается, он кэшируется.