Проблема: планировщик, кажется, не способствует интерактивным процессам:
В настольной системе с автоматическим запланированным резервным копированием крона от одного (btrfs
) диск другому (ext4
). Процесс резервного копирования монтирует бездействующий диск (/dev/sda<X>
), резервные копии на него, и наконец размонтировали его.
Каждый раз, когда процесс резервного копирования умирает, система становится неприменимой. Планировщику, кажется, не удается сделать его самое основное задание одобрения интерактивных процессов по пакетным. В то время как выполненные процессы резервного копирования, существуют большое продолжение IO, и все остальное замораживается. Клавиатура и указатель мыши прекращают отвечать. Эхо, когда клавиши нажаты в любом терминале/оболочке, отложено на несколько секунд.
Как только резервное копирование завершается, интерактивный ответ возвращается к нормальному.
Больше деталей об установке и конфигурациях:
Использование процесса резервного копирования rsnapshot
(который звонит rsync
и cp -al
) и выполнения в более низком приоритете (заданием резервного копирования предшествуют nice
), как так:
nice /usr/bin/rsnapshot -VD -c /etc/my-rsnapshot.conf daily
Выполнение резервного копирования под nice
кажется, не помогает. Во время резервных копий все интерактивные процессы, кажется, оголодали тяжелым ЦП и IO rsync
и cp
процессы.
Это - IA-64, iCore-7 система, которая должна смочь выполнить 8 процессов параллельно. Память составляет 16 ГБ, и часть ее свободна. Обрезанный вниз mount
вывод (когда дополнительный диск смонтирован):
/dev/sdb2 on / type btrfs (rw,relatime,subvol=@,thread_pool=4)
/dev/sdb3 on /home type btrfs (rw,relatime,subvol=@home,thread_pool=4)
/dev/sda2 on /media/idisk/root ext4 (rw,relatime)
/dev/sda3 on /media/idisk/home ext4 (rw,relatime)
none on /sys/fs/cgroup type tmpfs (rw)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,relatime,cpuset,release_agent=/run/cgmanager/agents/cgm-release-agent.cpuset,clone_children)
cgroup on /sys/fs/cgroup/cpu type cgroup (rw,relatime,cpu,release_agent=/run/cgmanager/agents/cgm-release-agent.cpu)
cgroup on /sys/fs/cgroup/cpuacct type cgroup (rw,relatime,cpuacct,release_agent=/run/cgmanager/agents/cgm-release-agent.cpuacct)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,relatime,memory,release_agent=/run/cgmanager/agents/cgm-release-agent.memory)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,relatime,devices,release_agent=/run/cgmanager/agents/cgm-release-agent.devices)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,relatime,freezer,release_agent=/run/cgmanager/agents/cgm-release-agent.freezer)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,relatime,blkio,release_agent=/run/cgmanager/agents/cgm-release-agent.blkio)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,relatime,perf_event,release_agent=/run/cgmanager/agents/cgm-release-agent.perf_event)
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,relatime,hugetlb,release_agent=/run/cgmanager/agents/cgm-release-agent.hugetlb)
Это находится в актуальных 14.04 системах LTS. Планировщик, по умолчанию установлен на completely-fair-queue (cfq
):
# cat /sys/block/sda/queue/scheduler
noop deadline [cfq]
# cat /sys/block/sdb/queue/scheduler
noop deadline [cfq]
Я смог найти, что тот связал вопрос. планировщик исчерпал ресурсы процессы, который предлагает использовать nice
, но я уже делаю это.
Другой связанный вопрос с релевантной информацией: Как я изменяюсь noop
планировщик
Как я могу сделать клавиатуру, мышь и интерактивные оболочки более быстро реагирующими, когда резервное копирование работает?
Заранее спасибо.
Просто частичный ответ, проведенный больше исследования и экспериментов начиная с выяснения, которые решили мою проблему, и видящий, нет никаких ответов
Там известны проблемы/ошибки в планировщиках ядра Linux по состоянию на начало 2016 года.
Краткое изложение что происходит при различных обстоятельствах, ядра остаются неактивными даже при том, что существуют выполнимые процессы в очереди процесса.
Ссылки:
Переключатель от btrfs до ext4 может облегчить эти проблемы:
Я лично переключился назад от btrfs до ext4. Производительность ввода-вывода заметно улучшилась.
Переключатель к SSD может далее облегчить производительность IO
SSD значительно отбросили в цене и надежности. Samsung на 2 ТБ SSD (EVO 850) теперь стоит немногим более, чем 600$. Переключение системы (корень и домой) к SSD теперь делает интенсивную операцию резервного копирования абсолютно непримечательной (система, SSD является мгновенным, делая тяжелые записи к обычному ext4-отформатированному диску в той же системе).
Наконец: с SSD преимущество сложных планировщиков в ядре кажется становлению сомнительным. Я изменил свое значение по умолчанию на noop без значимой неисправности вообще в производительности. Я факт, с noop планировщиком, я вижу сокращение системной нагрузки, понижаю числа масштабирования ЦП и понижаю аппаратные температуры.
$ cat /sys/block/sda/queue/scheduler
[noop] deadline cfq
$ cat /proc/cpuinfo | grep Hz
model name : Intel(R) Core(TM) i7-4771 CPU @ 3.50GHz
cpu MHz : 836.308
model name : Intel(R) Core(TM) i7-4771 CPU @ 3.50GHz
cpu MHz : 990.253
... similar low actual frequency scaling for all cores ...