Очень долгий выход из спящего режима

Автор saint-denis, 11 января 2012, 16:53:19

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

saint-denis

Раньше пользовал ubunt'ы - из спящего режима выходили достаточно резво (пользовался и стандартными утилитами, и tuxonice).
С squeeze возникла проблема: выходит из спящего режима минуты 2, причем содержимое swap перебрасывается в оперативную память потом еще минут 10.
Т.е. при выходе из спящего видим такую ситуацию: при попытке перейти в запущенное приложение нужно ждать секунд 10-20, пока оно из swap подгрузится в оперативку -  и так с любым запущенным до ухода в спящий приложением, вплоть до меню gnome.
Отсюда вопрос первый: как принудительно заставить debian выгружать весь swap  в оперативную память?
И вопрос второй: с запущенным virtualbox на всех бывших у меня системах в спящий режим перейти было невозможно (swap'а хватает). Спрашивал у людей - все заявляют, что у них прекрасно уходит. С чего такое неприятие vbox'а?

Вывод free в нормальном состоянии:
Открыть содержимое (спойлер)

saint@saint:/$ free
                   total          used            free     shared    buffers     cached
Mem:       4150816    3252208     898608          0     160376    2215184
-/+ buffers/cache:     876648      3274168
Swap:      4299312          0         4299312
[свернуть]

Вывод free после выхода из спящего:
Открыть содержимое (спойлер)

saint@saint:/$ free
                  total           used       free          shared    buffers     cached
Mem:       4150816     523400    3627416          0      12064     111424
-/+ buffers/cache:      399912    3750904
Swap:      4299312     637068    3662244
[свернуть]

P.S. Снижение параметра swapiness ситуацию не меняет. 

saint-denis

Вспомнил про свою тему.
Решение выгрузки swap: настроим последовательное выполнение swapoff и swapon после выхода из спящего режима.
В каталоге /etc/pm/sleep.d создал скрипт, начинающийся с порядкового номера выполнения. Скрипт с именем 10_**** уже был, поэтому я создал 20_swap со следующим содержимым:

#!/bin/bash

case "$1" in
resume|thaw)
swapoff -a
swapon -a
;;
esac

exit $?

и дал ему права на исполнение.