что такое подкачка памяти?

<p>я использую ram) для хранения некоторых из моих таблиц базы данных, а другие хранятся на жестком диске.</p><p>сегодня я узнал, что мои процессы используют память подкачки. теперь, что такое подкачка памяти и как я могу определить, какой процесс использует память подкачки, и как я могу остановить их использование?</p>

<p>если у вас заканчивается физическая память, вы используете виртуальную память, которая хранит данные в памяти на диске. чтение с диска на несколько порядков медленнее, чем чтение из памяти, поэтому все замедляется. (обмен данными между реальной памятью и виртуальной памятью является "обменом". пространство на диске - это "пространство подкачки".)</p><p>если ваше приложение "использует своп", то вам нужно либо использовать меньше памяти, либо покупать больше оперативной памяти.</p><p>(поменять местами полезно, поскольку неиспользуемые приложения могут храниться на диске до тех пор, пока они не будут использованы. затем их можно "выгружать" и снова запускать в обычном режиме. однако, пока он не находится в памяти, ос может использовать эту память для чего-то другого, например кеша диска. так что это очень полезная функция, но если у вас недостаточно физической памяти для запуска вашей программы, вам определенно нужно больше памяти. к счастью, в наши дни память действительно очень дешевая.)</p>

<p>компьютер имеет определенное количество физической памяти. но большую часть времени мы хотим большего. итак, мы поменяем память на диске.</p><p>каждый раз, когда нам нужна эта память, ее необходимо вернуть обратно в память (обменять какую-то другую часть). существуют чрезвычайно интеллектуальные алгоритмы, позволяющие минимизировать задержку, но иногда нам приходится ждать.</p><p>в окнах, если вы посмотрите на диспетчер задач, вы можете отобразить ошибки страницы столбца. это показывает количество времени, в течение которого приложение запрашивает часть памяти, которая была на диске и должна быть заменена. много ошибок страницы = медленное приложение.</p><p>этот процесс используется на нескольких уровнях. сводка от быстрой до медленной:</p><ul> <li>на уровне процессора есть регистры. это самая быстрая память, но количество ограничено.</li> <li>также на процессоре есть небольшой кеш памяти. здесь небольшой фрагмент запущенной программы хранится для быстрого доступа. поиск по алгоритмам прогнозирования отрасли, если вы хотите узнать больше.</li> <li>иногда между процессором и основной памятью существуют кэши 2-го уровня.</li> <li>следующий уровень - это основная память (ram).</li> <li>последний уровень и самый медленный из всех - это диск, иногда вы можете использовать флешки в качестве дополнительной памяти.</li> </ul>

<pre><code>cat /proc/pid/smaps </code></pre><p>если вы не хотите использовать swap, не используйте раздел подкачки (закомментируйте строку в <code>/etc/fstab</code>), но это не позволит запустить новый процесс и приведет к сбою malloc, если у вас закончится физическая память. в общем, это не очень хорошая идея ... не очень безопасная и даже не очень полезная, поскольку ос будет хранить горячие страницы в памяти и заменять те, которые в последнее время не использовались, на диск.</p><p>другим решением может быть взлом вашей базы данных, чтобы она блокировала страницы в памяти (я знаю, что это можно сделать, но я не могу сейчас сказать, как именно), но в любом случае, похоже, что ваша база данных будет использовать свою собственную подкачку и механизмы кеширования.</p><p>чтобы узнать, что такое подкачка и как работает виртуальная память ... я бы порекомендовал вам взглянуть на некоторые лекции по операционной системе, может быть, mit open courseware может помочь.</p>

<p>я нашел частично ответ. память подкачки - это пространство на жестком диске вашего компьютера, которое операционные системы будут использовать для помещения информации, фактически находящейся в ram, чтобы освободить ее для другого приложения. это следует делать, когда системе требуется память для нового процесса, а ее нет, поэтому мы можем видеть, что если в нашей системе достаточно ram), возможно, ей не понадобится память swap.</p><p><strong> [~ # ~] обновление [~ # ~] </strong></p><p>чтобы выяснить, где находится пространство подкачки (или виртуальная память), вы можете перейти к диспетчеру задач (ctrl + alt + del) и включить из меню view -> columns -> virtual memory. теперь просто посчитайте разницу между использованием памяти и виртуальной памятью. также вот инструкция, как это увидеть, если вы работаете в vista: <a href="http://www.ehow.com/how\_5067693\_increase-swap-space.html">http://www.ehow.com/how\_5067693\_increase-swap-space.html</a> </p>