Вы можете изменить поведение kswapd
двумя способами
Через файловую систему Proc
С IBM Developerworks ,
/ proc / sys / vm / kswapd
Максимальное количество страниц, которые ядро пытается освободить за один раз.Если вы хотите увеличить пропускную способность до / из свопа, вам нужно увеличить это число.
Минимальное количество попыток ядра освободить страницу при каждом свопе.
Количество страниц, которые ядро может записать за один обмен.Это оказывает наибольшее влияние на производительность системы.Чем больше значение, тем больше данных можно поменять местами и тем меньше времени тратится на поиск диска.Однако слишком большое значение будет отрицательно влиять на производительность системы из-за заполнения очереди запросов
через код ядра
kswapd (void * p) вызывает kswapd_try_to_sleep () . Вот где демон kswapd
пытается уснуть.Вот так -
schedule_timeout(HZ/10) /* You need to modify here to change the timeout value */
На самом деле это очень короткий период времени, в течение которого он спит.После этого короткого сна проверяется, был ли это преждевременный сон.Если нет, он полностью переходит в спящий режим (без тайм-аута) до явного пробуждения.
Настроить код ядра, собрать и протестировать его - непростая задача.Поэтому я предлагаю вам пойти по пути /proc
файловой системы!