Использование жесткого диска как оперативную память
Перейти к содержимому

Использование жесткого диска как оперативную память

  • автор:

Вам нужно увеличить RAM и перейти на SSD…

Задумывались ли вы, хватает ли вашему компьютеру, локальному или удалённому серверу оперативной памяти? Задумывались, но не знаете, как это определить? А накопители какого типа вы предпочитаете? Надеемся, данная статья поможет вам в этом разобраться.

▍ На что влияет объём оперативной памяти

Когда компьютеру нужно обработать данные, они помещаются в оперативную память и уже там с ними работает центральный процессор. Все запущенные программы и открытые в них файлы находятся в оперативной памяти компьютера. Таким образом, объём оперативной памяти влияет на то, сколько одновременно программ и насколько «тяжёлых» программ вы можете запустить и сколько одновременно и каких файлов (или, например, вкладок в браузере) вы можете открыть.

▍ Как производительность диска влияет на быстродействие компьютера

Операционная система периодически выгружает на диск из памяти те данные, к которые давно не использовались. А когда происходит к ним обращение снова, операционная система помещает их обратно в память вместо выгруженных на диск неактивных данных. Для пользователя это выглядит следующим образом: вы переключаетесь на окно, к которому давно не обращались, и компьютер на некоторое время «подвисает». А в это время выгруженные из памяти данные считываются с диска и помещаются обратно в память. Насколько быстро это произойдёт, зависит в первую очередь от быстродействия диска, ведь именно он будет здесь являть узким местом (оперативная память всегда быстрее).

▍ Почему файл подкачки должен находиться на SSD

Чем быстрее накопитель, тем короче будет такое «подвисание». А какие накопители быстрые — твердотельные. Мнение о ненадёжности твердотельных накопителей бытует и поныне, и до сих пор можно встретить советы перенести файл подкачки на HDD. Делать так ни в коем случае нельзя. Во-первых, SSD имеют достаточную надёжность, чтобы использоваться в высоконагруженных системах, если это не китайские «ноунеймы». У всех ключевых производителей есть несколько линеек накопителей с разным гарантированным уровнем надёжности и всегда можно подобрать необходимый вариант. Как показывает практика, накопители ещё долгое время могут проработать и после исчерпания заявленного ресурса. Во-вторых, поверхность пластин жёстких дисков тоже подвержена износу (вот неожиданность!) и со временем падает время доступа к секторам, а с ним и скорость обмена данными вплоть до невозможности обратиться к этим данным вовсе. Т.е. люди, перемещая файл подкачки с SSD на HDD, сами себе делают работу на компьютере менее комфортной. Действенным способом снизить нагрузку на диск подкачкой и увеличить его ресурс является увеличение объёма оперативной памяти или изменение подхода к работе за компьютером: можно закрывать вкладки, файлы, и программы, которые вам больше не нужны или не понадобятся в ближайшее время, чтобы освободить память.

▍ Ключевое отличие SSD от HDD

Если мы посмотрим на разницу скорости линейных чтения и записи на HDD и SSD, окажется, что SSD с интерфейсом SATA превосходят HDD с таким же интерфейсом в среднем «лишь» в 2-3 раза, в то время как на мелко блочных операциях разница составляет десятки раз и именно в этом кроется ключевое отличие накопителей. Механически SSD устроены по-другому и не так важно, где находятся данные, ведь скорость прохождения сигнала к ячейкам SSD гораздо выше, чем время доступа к секторам HDD. С развитием накопителей роль фрагментации данных хоть и снизилась в вопросах производительности HDD, время доступа к разным секторам в силу технических особенностей накопителей данного типа сильно отличается, в то время как разница во времени доступа к ячейкам SSD ничтожно мала. Ещё и поэтому файл подкачки функционирует заметно быстрее, находясь на SSD. Много лет назад, когда SSD ещё не начали получать доступность на потребительском рынке, сильно ощущалась разница в производительности между дефрагментированным файлом подкачки и недефрагментированным. Помимо самого файла, фрагментированными могут быть и данные внутри файла, а на SSD фрагментация уже не играет такой роли. Кроме того, разница в скорости зависела даже от территориального расположения данных на пластине жёсткого диска, и чем дальше данные были от центра, тем быстрее они считывались. На SSD же неважно, где территориально находятся данные, и фрагментация оказывает не такое сильное влияние на производительность.

▍ Почему оперативной памяти должно быть достаточно

Операционная система стремится выгрузить из памяти неактивные данные, чтобы в оперативной памяти всегда оставалось место для новых (или вновь загруженных из файла подкачки) данных. Если оперативной памяти не хватает катастрофически, и данные в оперативной памяти практически «не остывают», то операционной системе приходится «судорожно» искать в памяти данные, которые можно выгрузить на диск, когда требуется разместить данные в оперативной памяти. Поэтому в такой ситуации вы будете ждать дважды: пока данные будут выгружены из памяти, плюс пока требуемые данные будут загружены.

▍ Как понять, хватает ли оперативной памяти

Оценить требуемый объём можно, понаблюдав, сколько памяти требуется вашему компьютеру.
В ОС Windows обратимся к диспетчеру задач, чтобы узнать, сколько сейчас всего используется (Committed) памяти

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

(Get-WmiObject win32_operatingsystem | select @>).commit

Значение будет в килобайтах. На вышеприведённом скриншоте мы видим, что используется 12.5 ГБ памяти, а всего памяти, включая файл подкачки — 26.4 ГБ. В системе 16 ГБ физической памяти, объём файла подкачки автоматически выбирается системой. Выходит, что объём файла подкачки составляет 60% от объёма физической памяти. Нужно ли бросаться расширять физическую память? Давайте понаблюдаем, как у нас меняется объём используемой памяти.
Мы написали скрипт, создающий задачу в Task Scheduler, которая каждый 15 минут получает значение Committed Memory и дописывает его в файл C:\Users\Public\Documents\commit.txt.
Выглядит он как-то так:

powershell.exe set-executionpolicy unrestricted Set-Content -Path C:\Users\Public\Documents\get-commit.ps1 -Value "(Get-Date -Format 'yyyy-MM-dd HH:mm' )+`"``t`"+(Get-WmiObject win32_operatingsystem | Select @>).commit | Out-File C:\Users\Public\Documents\commit.txt -Append" $action = New-ScheduledTaskAction -Execute "`"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe`"" -Argument "C:\Users\Public\Documents\get-commit.ps1" $trigger = New-ScheduledTaskTrigger -Once -At 1am -RepetitionInterval (New-TimeSpan -Minutes 15) $principal = New-ScheduledTaskPrincipal -UserID "NT AUTHORITY\SYSTEM" -LogonType ServiceAccount -RunLevel Highest $settings = New-ScheduledTaskSettingsSet $task = New-ScheduledTask -Action $action -Principal $principal -Trigger $trigger -Settings $settings Register-ScheduledTask 'collect-commit' -InputObject $task

Вот фрагмент этого файла:

2023-05-03 10:15 6387512 2023-05-03 10:30 7986736 2023-05-03 10:45 8545776 2023-05-03 11:00 8540724 2023-05-03 11:15 8646144 2023-05-03 11:30 8726340 2023-05-03 11:45 8583972 2023-05-03 12:00 8898532 2023-05-03 12:15 8945512 2023-05-03 12:30 9749284 2023-05-03 12:45 9833264 2023-05-03 13:00 10605496

Представим данные из файла в виде графика

Как мы видим, большую часть времени система всё же «умещается» в отведённую память. Но нужно ли её расширить, так как иногда её не хватает? Если в работе это не заметно, то можно оставить всё как есть. Если доставляет дискомфорт, то остаётся ещё два выхода: либо всё-таки увеличить объём ОЗУ (но ведь это стоит денег), либо пересмотреть сценарии использования компьютера: закрывать ненужные более вкладки в браузере, файлы и окна программ. Если же это постоянно работающий сервер, то тут придётся пересматривать алгоритмы его работы, если можно доработать или перенастроить ПО, в противном случае придётся всё же добавлять память.
Про Windows выяснили, а в ОС Linux оценить использование памяти можно с помощью команды

free -t -h

Вывод будет примерно следующим:

 total used free shared buff/cache available Mem: 461Mi 129Mi 136Mi 0.0Ki 194Mi 319Mi Swap: 1.0Gi 5.0Mi 1.0Gi Total: 1.5Gi 135Mi 1.1Gi

Параметр -t добавляет строчку Total, на тот случай, если нам лень выполнять сложение (а нам, конечно же, лень). Параметр -h приводит значения к более удобным KiB, MiB и GiB. По умолчанию значения выводятся в килобайтах без указания величин.
Чтобы собрать статистику, можно поступить следующим образом.
Создаём файл с содержимым

#!/bin/bash a=$(date +'%Y-%m-%d %H:%M') b=$(free -t | awk -v RS="" '') echo $a$'\t'$b >> /home/used.txt

И сохраняем его, например, в /home/get-used.sh.
Добавляем в crontab строчку

*/15 * * * * /home/get-used.sh

Информация коллекционируется в /home/used.txt , содержимое которого выглядит так же, как у файла commit.txt , который мы создавали в Windows.
Мы пособирали информацию ещё на двух машинах и получили следующие данные.

В этих двух случаях объём физической памяти 2 ГБ и 512 МБ соответственно. Как мы видим, в случае 2 мы всё время «не умещаемся» в физическую память и её нужно увеличить на 1-2 ГБ.

▍ Вместо заключения

Мы не будем рассказывать, как выбрать правильный SSD или нужную память, это тема отдельной статьи. Хостеры виртуальных (VPS/VDS) серверов уже всё выбрали, вам всего лишь нужно изменить объём памяти вашего сервера и обратиться в техподдержку для перемещения вашего сервера на SSD, если вы всё ещё не сделали это.

Использовать жесткий диск как оперативную память

img

team

Имеет ли смысл использовать жесткий диск как оперативную память?

Нашёл тут ЖД не нужный, вот и решил его так использовать

Или это вообще не работает?

18 Aug 2017 в 12:59 #2

ха, теперь сделаю себе 1 терабайт оперативки, спс за идею

18 Aug 2017 в 12:59 #3

Ты можешь флешку использовать или переносной SSD (HHD пользы не даст) минимум на 4-8гб

Изменения почувствуешь в плане скорости обработки данных, но при этом никакой производительности в играх (фпс и прочее) не почувствуешь

Вот тебе и парадокс, объяснять который нет смысла, потому что сам не понимаю, с чем это связано

18 Aug 2017 в 12:59 #4

Essavian сказал(а):↑

Имеет ли смысл использовать жесткий диск как оперативную память?

Нашёл тут ЖД не нужный, вот и решил его так использовать

Или это вообще не работает?

Нажмите, чтобы раскрыть.

Мне отрежь кусочек, как раз 8 гб нехватает до 16.

18 Aug 2017 в 13:01 #5

18 Aug 2017 в 13:02 #6

Это не так работает Скорость чтения у него ниже и увеличения быстродействия от жд наверное не дождешься

img

18 Aug 2017 в 13:03 #7

Ну я не знаю как это работает, вот и спрашиваю

18 Aug 2017 в 13:06 #8

Скорость жесткого диска намного меньше, чем у оперативки. Так что смысла в этом нету(поставь файл подкачки на текущем диске на 50гб и увидишь, что ничего не изменится)

Даже SSD диски медленнее оперативки в ~25 раз.

18 Aug 2017 в 13:08 #9

Прироста быстродействия не заметишь, имхо

Хотя, в теории на этот ЖД можно поставить Ось, а второй диск использовать для всего остального: игоры, программы, торренты

18 Aug 2017 в 13:11 #10

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

18 Aug 2017 в 13:13 #11

zmnation20 сказал(а):↑

ха, теперь сделаю себе 1 терабайт оперативки, спс за идею

Нажмите, чтобы раскрыть.

Тогда ты станешь в доте для всех Флешем

18 Aug 2017 в 13:19 #12

https://ru.wikipedia.org/wiki/SATA

https://ru.wikipedia.org/wiki/DDR3_SDRAM

Смотрим раздел скорости передачи данных

18 Aug 2017 в 14:08 #13

Essavian сказал(а):↑

Имеет ли смысл использовать жесткий диск как оперативную память?

Нашёл тут ЖД не нужный, вот и решил его так использовать

Или это вообще не работает?

Нажмите, чтобы раскрыть.

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

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

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

но для бытовых задач нет смысла этим заморачиваться.

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

Кеш-буфер жесткого диска

Основная часть оперативной памяти, объем которой в жестких дисках достигает 64 Мбайт, используется для оптимизации доступа, а оставшаяся часть — для выполнения микропрограммы. Многие пользователи верят в то, что увеличение размера оперативной памяти жесткого диска очень сильно скажется на скорости его работы. Производители жестких дисков, пользуясь этой верой пользователя и снижением цен на микросхемы оперативной памяти, делают в рекламных проспектах громкие заявления об увеличении размера оперативной памяти. Однако, сравнивая практически идентичные жесткие диски, различающиеся только объемом оперативной памяти, выясняется, что ускорение работы составляет всего несколько процентов, т.к. увеличенный размер оперативной памяти используется в основном для улучшения технологии упреждающего чтения, эффективность которой резко падает при случайном доступе к данным. Размер оперативной памяти жесткого диска довольно мал по сравнению с оперативной памятью компьютера, и зачастую больший вклад в производительность накопителя при операциях с файловой системой делает программный буфер операционной системы.

Жесткий диск, оперативная память, кэш процессора: почему не хранить все в одном месте?

начало

Сегодня разберем в чем разница между 3 модулями хранения информации. Как они работают и взаимодействуют друг с другом.

Главная цель любой системы хранения — это иметь как можно больший объем и как можно быструю скорость передачи. Этим и обусловлено деление хранилища на 3 модуля. Современный процессор имеет очень высокую скорость обработки информации, для сложения двух 64-битных целочисленных значений, если процессор работает с частотой 4 ГГЦ, ему необходимо всего 0,00000000025 секунды. Жесткому диску за такими скоростями никогда не угнаться

Жесткий диск представляет собой магнитный диск со считывающей головкой только для того, чтобы найти информацию на этом диске ему требуется тысячи наносекунд, не говоря уже о передаче. Современные твердотельные накопители на базе флеш-памяти справляться за сотни наносекунд, но это все равно очень медленно. Жесткий диск находится отдельно от процессора, информацию необходимо отправлять по линиям передачи данных, что также снижает скорость. Необходим посредник, который будет располагаться ближе к процессору и иметь более высокую скорость передачи и этот посредник – оперативная память (RAM).

Динамическая оперативная память (DRAM) намного быстрее, так зачем тогда использовать жесткий диск? Во-первых, память является энергозависимой, т. е. при отключении питания вся информация стирается. Во-вторых, она не хранит большой объем информации (32 ГБ это уже очень много). Так, что хоть жесткий диск и очень медленный, но без него не обойтись. Динамическая оперативная память всегда располагается как можно ближе к процессору. В ней хранится информация, которая необходима процессору в данный момент.

Несмотря на то, что DRAM быстрее твердотельного диска, за процессором ей все равно не угнаться. Поэтому добавили еще один тип памяти – статическая оперативная память (SRAM) она располагается внутри самого процессора максимально близко к вычислительному блоку. Данный вид памяти называют кэшем процессора. Она имеет наименьший объем – в зависимости от уровня кеша, от нескольких кбайт до нескольких мегабайт и наибольшую скорость передачи, близкой к скорости процессора. В ней хранятся набор данных готовых к вычислению.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *