Периодически моя система останавливается на короткое время (менее 1 с). Когда это происходит, указатель мыши зависает или заикается, и мой ввод с клавиатуры не отображается на экране. После того, как это сделано, ввод с клавиатуры появляется мгновенно, и моя мышь прыгает в точку, где она должна быть.
Я использую Ubuntu 13.04 на MacBook Air. Я переключил swapiness до 10, также посмотрел vmstat (чтобы проверить, поменяется ли он) и посмотрел на dmesg и syslog, а также top. Я не могу найти какое-либо ненормальное поведение, нет сообщений журнала и нет подмены.
Моя система полностью обновлена.
$ uname -a
Linux wega 3.8.0-21-generic #32-Ubuntu SMP Tue May 14 22:16:46 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
Следующий вывод был получен с помощью iostat -xm 1 во время одного из киосков:
avg-cpu: %user %nice %system %iowait %steal %idle
10,08 0,00 3,27 0,25 0,00 86,40
Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 0,00 13,00 0,00 2,00 0,00 0,06 60,00 0,01 4,00 0,00 4,00 4,00 0,80
dm-0 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
Есть некоторые io, но я не совсем уверен, что это проблема, тем более что это всего лишь пара запросов на запись. Когда я запускаю bonnie ++, он получает хорошие результаты при записи, и частота остановок не увеличивается.
Я запускал bonnie ++ до / tmp, который работал очень хорошо, теперь я запускаю его на своем зашифрованном домашнем каталоге, и он вообще не работает, он работает с 99% загрузкой ЦП, но с почти 0 использованием диска (как показано iostat).
Если вы согласны с сборкой ядра из исходного кода, в конфигурации ядра есть несколько опций, которые могут повлиять на задержку и кажущуюся отзывчивость на работающей машине.
Например, в конфигурации сборки для ядра на моем ноутбуке я использую:
CONFIG_PREEMPT=y
CONFIG_HZ_1000=y
CONFIG_HZ=1000
Это, как представляется, приводит к подходящей скорости отклика, для использования на настольном компьютере.
Конечно, читатель, незнакомый со сборкой ядра, может обратиться к некоторой документации о процессе. Похоже, есть несколько документов типа «Howto» о сборке собственного ядра в Ubuntu. Вот простой пример с make menuconfig . Конечно, он не упоминает пакет linux-tools и связанные с ним пакеты, но доходит до того, как собрать ядро из исходного кода.
Вот более обширное руководство, показывающее прямое извлечение из Git-репозитория Kernel. GIYF. НТН. Приветствия.
Можете ли вы проверить, связаны ли киоски с работой диска?
Ubuntu Desktop поставляется с включенной функцией mlocate, которая «сканирует» диск один раз в день и генерирует большое количество операций чтения.
На моем рабочем столе это часто приводит к киоскам, как у вас. Отключение mlocate в /etc/cron.daily решило это за меня (sudo mv /etc/cron.daily/mlocate /etc/cron.daily/mlocate.disabled
)