Развеиваем мифы: Файл подкачки на RAM-диске |
17 Сентября 2016 |
Задумайтесь, мы сознательно уменьшаем память компьютера для размещения в ней рамдиска с подкачкой, которая нужна, при малом (недостаточном) количестве памяти. Замкнутый круг. Статья: Ramdisk – виртуальный диск для ускорения работы компьютера Теперь расскажу более подробно с картинками. Весь доступный для использования ресурс памяти компьютера условно состоит из двух частей – физической памяти, то есть модулей, установленных на материнской плате, и файла подкачки (Свопа – от англ. Swap-file), который используется при нехватке физической памяти. Такой механизм защищает систему от истощения ресурсов. Сбрасывая временно неиспользуемые программы и библиотеки в swap-файл на жестком диске, освобождается место для новых приложений. Операционка будет работать медленнее, но не заглючит и не зависнет.
Вот как выглядит ресурс памяти при создании в ней RAM-диска. Часть физической (именно ценной физической) памяти отрезается и отдается под накопитель, который виден в системе как обычный диск. Соответственно, размер диска не может быть больше размеров оперативной памяти. Такой виртуальный «винчестер» имеет высочайшую производительность, на порядок (а то и больше) обгоняющую даже SSD. Но размер памяти уменьшен, а значит, часть программ, которым не хватило места, будут отправлены в файл подкачки.
Теперь посмотрите на особенности распределения памяти при расположении Свопа на RAM-диске. Во-первых, суммарный размер свободной памяти и Swap-файла не может быть больше физической памяти компьютера, что убивает вообще всякий смысл подкачки, направленной на расширение лимита физической памяти. Во-вторых, операционная система достаточно гибко умеет распределять свои ресурсы. Ограничивая систему виртуальным диском, мы не даем полного контроля над памятью.
Например, в некоторых случаях система может повысить производительность за счет файлового кэша, который в файле подкачки не применяется. Поэтому, нужно отключить RAM-диск и подкачку, освободив память, и дать системе самой решать, как использовать свободные ресурсы. Пример. В компьютере 6 Гбайт оперативной памяти и 2 Гбайт в подкачке на жестком диске. Суммарно под систему и программы выделено 8 Гбайт. Файловый кэш может быть выделен только в пределах физических 6-ти Гбайт. Теперь мы хотим избавиться от дисковой подкачки на винчестере и перенести ее на RAM-диск. Создаем виртуальный диск, равный по размеру Свопа. Итого получается: 4 Гбайт свободной памяти + 2 Гбайт под Swap-файл. Суммарный размер под систему и программы – 6 Гбайт. Только теперь кэш может быть выделен в пределах 4 Гбайт (а не 6-ти, как ранее). Если хочется избавиться от дисковой подкачки, например, при наличии большого количества памяти, то проще вообще отключить Своп. Применительно к нашему примеру, весь выделенный ресурс будет состоять только из физической памяти размером 6 Гбайт, которая выделена под систему и программы. То есть, по сравнению с предыдущим случаем (подкачки на виртуальном носителе) мы ничего не теряем, плюс система имеет возможность более эффективно использовать ресурсы.
Поэтому не используйте файл подкачки на RAM-диске, это верхняя степень идиотизма, идущая от полного непонимания того, как работает операционная система.
Получайте анонсы новых статей прямо на почту |
Комментарии
Коммент от
Сен 19, 2016Комментатор
emanКакая OS?
Вы о zRAM слышали? RAM-диск с компрессией. https://ru.wikipedia.org/wiki/ZRam
Коммент от
Сен 19, 2016Комментатор
pc-hard.ruЧто касается zRam, то выигрыш будет лишь при стратегии принудительного использования подкачки при большом кол-ве свободной физической памяти. Такой подход встречается довольно редко. Можете сами убедиться, free -m вам с помощь. Попробуйте забить оперативку до максимума и посмотрите размер подкачки. Так что проект, хоть и существует, но используется только для ряда весьма специфических задач.
Коммент от
Ноя 11, 2016Комментатор
АлексейПричина: плата управления станком ЧПУ, на которую в природе существуют только 32-битные драйвера.
Думаю, что в данном случае размещение в верхних 4 ГБ памяти рамдиска с файлом подкачки - хорошее решение (правда, ещё не пробовал своими руками)
Коммент от
Ноя 11, 2016Комментатор
pc-hard.ruКоммент от
Фев 27, 2017Комментатор
Дмитрий1. В ОС Windows крайне нежелательно отключать файл подкачки вообще, хоть даже если у вас 128Гб физической ОЗУ.
2. Есть некоторый софт (не редкий), который ломится в своп при любом кол-ве ОЗУ, например Firefox (можно проследить по ошибкам страниц), и если у вас своп "тугой" (расположен на НDD), то снижение производительно сти системы вам обеспечено (подкачка на рам-диске решает эту проблему)
3. Если памяти 16+ Гб, то отдать 1-2Гб из них под подкачку на рам-диске - вполне разумно. Вы хоть раз сами попробуйте сделать это, и увидите, как увеличится РЕАЛЬНАЯ производительно сть ОС (к примеру win7 установленная на HDD с 16Гб ОЗУ - загружается на 40% быстрее после переноса свопа размером 2Гб на рам-диск размером 2.4Гб, несмотря на то что свободная ОЗУ уменьшилась на 2.4Гб)
4. Снижение дисковых операций прибавляет ~10% производительно сти в специфических приложениях, например в майнинге (софт-майнеры при загрузке CPU из-за дисковых операций со свопом каким-либо фоновым процессом всего на (!) 1%, сразу снижают свою производительно сть на ~5-10% из-за L3 cache poisoning)
Безусловно, тут важно отметить, что программно рам-диск не должен быть кривым, и уметь загружать свой драйвер одним из первых (к примеру, известный RAMDisk от qsoft это умеет), а не после того, как ОС начнет ломиться "вникуда", пытаясь записать pagefile.sys.
Так что, статья в целом ближе к истине, но не без оговорок.
Коммент от
Фев 27, 2017Комментатор
pc-hard.ru2) Это скорее проблема такого софта. Это не его дело, откуда брать ресурс. Этим занимается операционная система, и именно она решает, как использовать предоставленные ресурсы. А дело софта - эти ресурсы утилизировать. Если у меня вообще свопа нет, Firefox вообще не будет тормозить (пользуясь вашей логикой).
3-4) Если требуется скорость, то лучше поставить SSD - я проводил тестирование при использовании кэша браузеров на SSD и на Рам-диске. Разница на глаз не заметна. Снижение производительно сти будет только при использовании HDD. С разумной точки зрения (для вашего примера), не лучше ли будет 8Гиг RAM + SSD, чем 16гиг RAM + HDD.
Хотя некоторые проги типа фотошопа все же используют свою собственную подкачку - в виде файла на диске. Но это уже больше для надежности и удобства (например большая очередь истории)
Спасибо за объемный и интересный комментарий.
Коммент от
Фев 27, 2017Комментатор
Нищеброд без SSDКоммент от
Фев 27, 2017Комментатор
pc-hard.ruВот в этой статье http://pc-hard.ru/softarticles/52 было написано в самом конце про такие примеры (и в комментах). Но по факту это обычно старые версии прог и игрух.
А что, кстати, там с этим FireFox'ом? Он некорректно работает без подкачки? Как это проявляется.
Коммент от
Фев 27, 2017Комментатор
Нищеброд без SSDЗ.Ы.: когда нибудь я перейду на ssd и забуду про все это как про страшный сон
Коммент от
Июн 13, 2017Комментатор
Нищебротт