Лучшее использование RAM-диска?
Просто интересно, вы когда-нибудь делали что-нибудь полезное с RAM-диском в производстве? Интересно, может ли выигрыш в производительности, который они предоставляют, перевешивать их временную природу в определенных обстоятельствах.
Я когда-либо использовал только один раз, и это было не для производительности. Это было, когда мне нужно было некоторое место на диске для записи на сервере с ошибками жесткого диска - мне было достаточно места, чтобы установить утилиту 3ware RAID для идентификации хитрого диска.
Как вы использовали RAM-диск в производстве?
23 ответа
Я установил виртуальный диск на свой почтовый портал.
Там clamav имеет ramdisk 256 МБ для сканирования вложений.
Он работает почти три года, я думаю, что все в порядке:)
Абсолютно.
Бездисковые узлы, у которых корневая ФС находится на общем ресурсе NFS только для чтения и стратегически смонтированы tmpfs
файловые системы для записи в различные части иерархии файловых систем (например: /tmp
).
Nagios может использовать виртуальный диск для значительного увеличения производительности, как выяснил этот парень:
http://lickthesalt.com/2009/04/19/tweaking-nagios-for-performance/
Да, Windows PE использует их для загрузки среды PE в память до создания образа ПК.
Меня всегда привлекала идея использования RAM-диска для определения местоположения файла подкачки, но я никогда не удосужился его опробовать, и, честно говоря, я не совсем уверен, насколько хорошо он будет работать на практике.
Распространенным использованием является размещение tmpdir в MySQL на виртуальном диске (например, tmpfs), если ваше веб-приложение создает много временных таблиц на диске, т.е. Created_tmp_disk_tables
большой и становится все больше.
ура
Мой нетбук rsyncs мой профиль Firefox на RAM-диск при загрузке, удаляя очень немного раздражающие паузы, вызванные обновлением файла urlclassifier на SSD не для быстрой записи после загрузки страницы. Он rsyncs его обратно при полном выключении, так что новые закладки и тому подобное не теряются между загрузками (используя опцию inplace, которая уменьшает количество записей, необходимых в простых тестах, которые я выполнил) или когда я даю команду (т.е. после внесения ряда изменений) нравится установка + настройка плагинов).
Они также полезны для некоторых тестов производительности, когда вы не хотите, чтобы дисковый ввод-вывод оказывал большое влияние на тест, но /dev/zero и друзья по какой-то причине не будут.
На брандмауэре жесткий диск был заменен компактной флеш-картой. ОЗУ используется потому, что CF-карты имеют ограниченные циклы записи. При выключении все данные в ОЗУ, которые необходимо сохранить, переносятся на CF-карту и перезагружаются при перезагрузке. В настоящее время я занимаюсь созданием тонких клиентов Linux, используя ту же идею.
Они наиболее полезны при работе без дисков или при использовании дисков только для определенного формата, с которого ОС не загружается.
Я знаю, что это не сервер, но на старых компьютерах Mac у вас была возможность установить ram-диск, а затем установить в него минимальную ОС 7, установить его в качестве загрузочного тома и перезагрузиться с него. Казалось, страшно, но это всегда работало, и это определенно делало действия поиска более отзывчивыми. Некоторые утверждали, что это даже заставило работать фотошоп быстрее, но я никогда не понимал этого.
Существуют законные способы использования RAMDISK, но их немного. Системный кеш обеспечивает большинство преимуществ RAMDISK без недостатков. RAMDISK требует связывания значительного объема оперативной памяти, когда его лучше использовать для других целей. Вы часто будете оптимизировать один аспект производительности, но потеряете его в другом месте.
Кстати, использование RAMDISK для файла подкачки совершенно бессмысленно. Практически в каждом случае лучше позволить системе использовать оперативную память по своему усмотрению.
Вы можете хранить небольшие, но часто файлы R / W на RAM-диске. Некоторые использования я делаю:
- Системный журнал идет в tmpfs /tmp на моем ноутбуке: он помогает отделить диски, если я не использую компьютер (уменьшает записи)
- / tmp хорош для tmpfs, так как многие приложения используют его как временный каталог (например, mysql для временных таблиц, сканеров вирусов и некоторых утилит для упаковки)
- Хранилище файлов сессий php: в системах Debian /var/lib/php[45] всегда монтируется tmpfs для уменьшения записи на диск (так как мои диски всегда raid1, запись довольно трудна)
- как уже упоминалось, почтовые сканеры благодарны за бесконечные блокираторы скорости:)
- файлы для AJAX: эти файлы часто регенерируются
Вы должны проверить свои приложения, где у вас есть возможность. Каталог, пригодный для перехода в tmpfs, если содержимое
- будет восстановлен в любом случае (например, файлы поддержки ajax)
- не надо переживать перезагрузку
Как правило, это пустая трата памяти, поскольку ОС часто очень хорошо решает, как использовать доступную оперативную память.
Я давно не видел, чтобы оперативные диски использовались в течение долгого времени, но я думаю, что это связано с тем, что такие инструменты, как memcached, обеспечивают большее масштабирование и тот факт, что теперь вы можете получить такие быстрые жесткие диски (если подумать о SSD-дисках), что производительность не так важна. (см. этот пост о том, как он не имеет каких-либо существенных различий).
Примером интересного использования memcachd является Twitter. Очень умная идея для ramdisks - это система конфиденциальности, особенно для локальных пользователей - просто подумайте о выключении, и данные исчезли (идея Surasoft).
Когда я запускал sendmail, я использовал ramdisk (технически, Linux tmpfs, но функционально то же самое) для базы данных hoststat. Это занимает очень мало места, но создает тонну inode. Sendmail (в то время) не выполнял никаких операций по его обслуживанию, и он быстро растет даже на скромно загруженном почтовом сервере. Я использовал ramdisk, чтобы мой сценарий очистки не вызывал сбои дисков из-за всех поисков в каталоге.
Использую рамдиски уже 35 лет. Лучше всего использовать для кэширования файлов на диске, я использую ноутбук XP Pro с 3,24 гигабайтами для ОС (макс) и 0,76 гигабайтами для файла подкачки.
Курит.....
Я использую RAM-диск для компиляции (/tmp настроен как tmpfs на моем компьютере). Я никогда не удосужился выбрать время, хотя.
В Windows я использовал виртуальный диск в качестве рабочего диска в Photoshop (поскольку он настаивает на том, чтобы использовать его, даже если у вас гораздо больше памяти, чем нужно). Я думаю, что было бы интересно поместить папку текстур для World of Warcraft на виртуальный диск, но я прекратил играть, пока у меня не хватило памяти, чтобы попробовать это.
У меня 64 ГБ ОЗУ сервера и работает 40 ГБ Ramdisk:)
На виртуальном диске у меня есть VHD-файлы виртуальной машины, которая работает под Hyper V.
Windows Server 2008 R2 загружается за 2 секунды. Все это примерно в 10 раз как минимум быстрее:)
Solaris монтирует /tmp в ram (или подкачку, в зависимости от того, как вы смотрите на вещи), и вы можете настроить Linux так же. Много лет назад у меня была такая же настройка на моем OS/2-боксе, я распаковывал туда вещи, и это было полезно для улучшения скорости (оригинал был на диске, отсутствие необходимости нажимать на диск было победой, и OS/2 имел фиксированный размер дискового кеша).
Мой домашний сервер работает через интернет-прокси (FreeProxy). Поскольку это дешевый сервер, а жесткие диски не быстрые, я использую 1 ГБ ОЗУ для размещения файлов кэша прокси. Производит огромную разницу в производительности и теряется только при перезагрузке сервера (раз в месяц или около того, в зависимости от обновлений Windows!).
Хотя это не буквально RAM-диск, архитектура Mailinator в том же духе. По сути, поскольку контент, который обрабатывает Mailinator, не является "ценным", он может позволить себе риск его потери радикально повысить производительность.
Твердотельные накопители становятся все больше и дешевле ( $1–2 за ГБ для дисков меньшего размера на момент написания этой статьи) каждую неделю, а циклы записи в течение 10-х годов использования 24/7/365 сокращают объем ОЗУ на основе DRAM и менее жизнеспособный
Мы находим, что используя RAMDISK в качестве места для SCRATCH
файлы в Фортране действительно помогают, когда вы используете программное обеспечение "намного старше меня" для действительно больших наборов данных:)
Вы используете их при каждой загрузке вашей системы:)
Помещая в конечном итоге необходимые модули драйверов в виртуальный диск, вы можете сохранить небольшое модульное ядро и по-прежнему загружаться со многих разных устройств (от "обычного" диска, через разные контроллеры raid до корневой файловой системы в сети через NFS) - без необходимость скомпилировать ваши драйверы в ядро.
Одного этого должно быть достаточно для существования виртуальных дисков:)
И потом, хотя я никогда не использовал его для чего-то еще, кроме вышеперечисленного, да, они могут быть полезны в ситуациях, когда у вас есть достаточно разумное количество больших временных данных для записи очень часто, когда это может не иметь большого значения, когда оно потеряно в, вероятно, редком случае, сервер отключается, и требуется очень быстрое чтение и запись
Я храню сессии в MySQL на RAM-диске. Намного лучше, чем тип таблицы памяти, поскольку у вас могут быть индексы, и меньше проблем с конфликтами и задержек при записи, чем надеяться, что система разберется с этим - базы данных хотят убедиться, что ваши данные в безопасности, нам все равно, просто хотим быстро. Запланированные перезагрузки могут быть скопированы на диск, а затем обратно (хотя мы, как правило, просто позволяем истечь сессиям), и это было менее трудной задачей, чем изменение хранилища сессий на использование memcached (вы не можете выполнять запросы для истечения срока старых сессий в memcached - это не так просто, как позволить им истечь).