Як налаштувати простоту в управлінні пам’яттю Linux?


11

Параметр swappiness контролює схильність ядра до переміщення процесів з фізичної пам'яті та на диск обміну. Що таке налаштування за замовчуванням та як його налаштувати для покращення загальної продуктивності ?


3
Після зміни своппіння я вважав корисним спустошити своп, swapoff -aщоб почати заново. serverfault.com/a/354384/203035
Немо

Відповіді:


10

Ядро Linux надає налаштовану настройку, яка керує простотою

$ cat /proc/sys/vm/swappiness
60  

відкрити /etc/sysctl.confяк корінь. Потім змініть або додайте цей рядок у файл:

vm.swappiness = 10

для зміни значення swappiness тимчасово спробуйте цю команду:

$ echo 50 > /proc/sys/vm/swappiness

1
Як це відповідає "як налаштувати це для покращення загальної продуктивності?"
techraf

Обмін потрібен тоді, коли ваша система працює повільно, оскільки це відбувається в періоди, коли у вас не вистачає корисної оперативної пам’яті, що сповільнило б вашу систему (можливо, навіть збій програми), навіть якщо ви не мали місця. Тож для спрощення речей обмін відбувається через те, що ваша система забуває, а не навпаки - а в деяких випадках це може врятувати день.
Монгрель

2
Чи вам також не потрібно, щоб sudo sysctl -p /etc/sysctl.confзміни вступили в силу?
pkaramol

11

Від Swappiness, Вікіпедія

Ви можете встановити це значення у віртуальному файлі /proc/sys/vm/swappiness . Згадане значення визначатиме, як слід використовувати простір підкачки, нижче - значення з їх намірами.

vm.swappiness = 0   # Swap is disabled. In earlier versions, this meant that the kernel would swap only to avoid an out of memory condition, but in later versions this is achieved by setting to 1.
vm.swappiness = 1   # Kernel version 3.5 and over, as well as kernel version 2.6.32-303 and over: Minimum amount of swapping without disabling it entirely.
vm.swappiness = 10  # This value is sometimes recommended to improve performance when sufficient memory exists in a system, this value *10* could be considered for the performance being expected. 
vm.swappiness = 60  # The default value.
vm.swappiness = 100 # The kernel will swap aggressively.

Хоча це насправді залежить і від потреби, якщо наявна фізична пам'ять є достатньою, можливо, не буде великої потреби в просторі обміну, за умовами Леймана, не буде потреби в зміні значення за замовчуванням 60.


@techraf оновив відповідь.
Кейшовський борат

1
У віртуальних машинах я раджу все-таки змінити його на 10 про всяк випадок.
Rui F Ribeiro

2

У RedHat / CentOS значення за замовчуванням - 60.
"Для підвищення продуктивності" дуже широкий термін. Яку ефективність ви намагаєтеся покращити?

У вас проблеми з низькою пам’яттю?
Чи працює ваша система SWAP, коли все ще є вільна пам'ять / кешована пам'ять?

У Linux безкоштовна оперативна пам’ять = витрачена оперативна пам’ять, тому майже вся вільна пам'ять використовується для кеш-дисків.
Є випадки з заміною = 60, коли сторінки в пам'яті переміщуються в SWAP, якщо вони не були доступні протягом тривалого періоду часу, незалежно від того, що ви нерозподілили оперативну пам'ять.
Переміщення деяких сторінок пам'яті в SWAP не обов'язково погано.

Будь ласка, пролийте трохи більше світла на ваше питання для більш детальної відповіді.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.