Почему стандартная swappiness 60? Каким будет эффект, если я понижу значение swappiness для моего настольного ПК?

16

Я читал о swappiness на разных форумах, и я видел несколько видеороликов. Многие заявили, что пользователям настольных компьютеров полезно снизить значение swappiness ниже 60 (что является значением по умолчанию). Некоторые заявили, что 60 хорош для серверов. Именно поэтому для меня было бы лучше опустить его и почему 60 для серверов? Я попытался найти ответ (я посмотрел здесь например), но не мог понять. ... Пожалуйста, используйте простые термины: D

    
задан Mina Michael 12.02.2014 в 18:03
источник

4 ответа

21

Ваша предпосылка неверна. Не существует «полезной для стоимости обменов серверами».

Swapiness - это объем обмена, который выполняется, особенно, насколько агрессивно вы меняете. Для моих серверов своя близость к нулю, так как я чертовски уверен, что у них достаточно памяти для всего. Нет значения «лучше всего для серверов». существует 60, что по умолчанию, а затем есть «ваше значение», которое зависит от использования и доступной памяти.

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

    
ответ дан Nanne 12.02.2014 в 18:17
источник
7

Значение swappiness масштабируется таким образом, что это путает людей. Они видят, что он имеет диапазон 0-100, поэтому они думают о процентах, когда действительно эффективный минимум составляет около 50.

60 примерно означает, что мы не обмениваемся, пока не достигнем 80% использования памяти, оставив 20% для кеша и т. д. 50 означает, что до тех пор, пока не закончится память. Более низкие значения означают одно и то же, но с увеличением агрессивности при попытке освободить память другими средствами.

Опишите это довольно хорошо на ссылке

    
ответ дан David 17.07.2014 в 18:16
5

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

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

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

Пожалуйста, см. ответ, который я написал на очень похожий вопрос:

Ссылка

Выдержки:

  

Почему большинство людей рекомендуют уменьшить swappiness до 10-20?

     

Потому что большинство считают, что swapping = bad, и если вы не уменьшите swappiness, система будет меняться, когда это действительно не нужно. Ни то, ни другое не правда. Люди связывают смену со временем, когда их система становится увязшей - однако, это в основном свопинг , потому что система увязнет, ​​а не наоборот. Это правда, что есть определенные моменты, когда обмен может иметь заметное снижение производительности, но система уже учла, что в своем решении об обмене и решила, что не делать этого будет иметь больший общий штраф в производительности или стабильности системы, что может позже становятся заметными. В целом настройки по умолчанию должны обеспечивать наилучшую общую производительность и надежность. Я бы рекомендовал оставить его по умолчанию.

     

...

     

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

     

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

     

В вашей системе есть параметр «swappiness», который поможет вам настроить, как рассчитывается это «давление». Обычно не рекомендуется изменять это вообще, и я бы никогда не рекомендовал вам его изменить. Переключение в целом - очень хорошая вещь - любые случайные штрафные санкции предназначены для компенсации за счет общей реакции системы и стабильности для широкого круга задач. Если вы уменьшите swappiness, вы позволите уменьшить объем памяти кэш-памяти немного больше, чем в противном случае, даже если это действительно может быть полезно. Поэтому вы рискуете замедлить работу своего компьютера в целом, потому что меньше кэша, а память используется приложениями, которые даже не используют его. Является ли это достаточно хорошим компромиссом для любой конкретной проблемы, с которой вы сталкиваетесь при обмене, зависит от вас. Если вы идете дальше этого и фактически отключите подкачку, вы рискуете нестабильной системой в случае, если система исчерпала память для процессов.

     

Что происходит, когда система увязывается и сильно меняет местами?

     

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

     

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

     

...

     

Но как можно поменять скорость моей системы?Не меняет медленные вещи?

     

Акт передачи данных из ОЗУ для свопинга - это медленная операция, но это делается только тогда, когда ядро ​​уверен, что общая выгода перевешивает это. Например, если ваша память приложений выросла до такой степени, что у вас почти нет кэша, и ваш ввод-вывод очень неэффективен, из-за этого вы можете получить намного большую скорость из своей системы, освободив некоторую память даже после первоначального расхода подкачки данных, чтобы освободить его.

Не стесняйтесь читать весь пост в Ссылка

    
ответ дан thomasrutter 24.03.2014 в 03:52
0

Счастье полностью противоречит всем этим ответам.

Настоящая работа обкатки описана в статье: Ссылка

Неоднозначность подтверждается заявлением Эндрю Мортона: Ссылка

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

Надеюсь, что он полезен

    
ответ дан user3624410 16.02.2018 в 15:21