
Эта проблема сохранялась некоторое время, но, похоже, она стала возникать чрезвычайно часто (вместо того, чтобы время от времени возникать, почти каждый день) после того, как я обновился с версии 18.04 до 20.04.
Всякий раз, когда что-то происходит — мне кажется, когда использование оперативной памяти становится высоким (я видел, как люди описывали похожую проблему с дисковым вводом-выводом, но это, похоже, не так) — система на грани зависания. В течение первой минуты система будет просто резко дергаться, и у меня будет короткое окно возможности переместить теперь уже дергающийся курсор мыши, чтобы быстро закрыть вкладку браузера или приложение, которое вызывает проблему. Если я этого не сделаю, в этот момент система практически зависнет навсегда, системные часы на верхней панели перестанут обновляться, и она не разморозится, что бы ни случилось, и мне нужно будет сделать жесткий сброс.
Раньше это часто случалось в Firefox, когда у меня было открыто слишком много вкладок, но я установил расширение Tab Limiter, чтобы смягчить это. Но это просто продолжает происходить, это происходит (иногда), когда я работаю над большим изображением в GIMP, и когда я просматриваю некоторые сайты с бесконечной прокруткой, например, редизайн DeviantArt или некоторые видеосайты. Я только что потерял полчаса прогресса в работе над пиксельной графикой, над которой работал в GIMP.
Это делает мою систему действительно раздражающей для использования. Ненавижу это говорить, но Windows 10, которая у меня установлена в режиме двойной загрузки, более стабильна - и это о чем-то говорит, поскольку W10 - худшая операционная система, которую я когда-либо использовал.
Вот дамп inxi -F:
System:
Host: shino-ProLiant-ML310-G5p Kernel: 5.4.0-66-generic x86_64 bits: 64
Desktop: Gnome 3.36.4 Distro: Ubuntu 20.04.2 LTS (Focal Fossa)
Machine:
Type: Desktop System: HP product: ProLiant ML310 G5p v: N/A
serial: <superuser/root required>
Mobo: N/A model: N/A serial: N/A BIOS: HP v: W08 date: 10/25/2010
CPU:
Topology: Dual Core model: Intel Xeon E3120 bits: 64 type: MCP
L2 cache: 6144 KiB
Speed: 1995 MHz min/max: N/A Core speeds (MHz): 1: 1995 2: 1995
Graphics:
Device-1: AMD ES1000 driver: N/A
Device-2: NVIDIA G86 [Quadro NVS 290] driver: nvidia v: 340.108
Display: x11 server: X.Org 1.20.9 driver: nvidia
unloaded: fbdev,modesetting,nouveau,vesa resolution: 1440x900~75Hz
OpenGL: renderer: Quadro NVS 290/PCIe/SSE2 v: 3.3.0 NVIDIA 340.108
Audio:
Device-1: Generalplus type: USB driver: hid-generic,snd-usb-audio,usbhid
Sound Server: ALSA v: k5.4.0-66-generic
Network:
Device-1: Broadcom and subsidiaries NetXtreme BCM5715 Gigabit Ethernet
driver: tg3
IF: enp3s4f0 state: down mac: 9c:8e:99:35:15:80
Device-2: Broadcom and subsidiaries NetXtreme BCM5715 Gigabit Ethernet
driver: tg3
IF: enp3s4f1 state: up speed: 1000 Mbps duplex: full
mac: 9c:8e:99:35:15:81
Drives:
Local Storage: total: 1.82 TiB used: 594.46 GiB (31.9%)
ID-1: /dev/sda model: LOGICAL VOLUME size: 1.82 TiB
RAID:
Hardware-1: Hewlett-Packard Smart Array G6 controllers driver: hpsa
Partition:
ID-1: / size: 910.88 GiB used: 594.46 GiB (65.3%) fs: ext4 dev: /dev/sda5
Sensors:
System Temperatures: cpu: 40.0 C mobo: N/A gpu: nvidia temp: 68 C
Fan Speeds (RPM): N/A
Info:
Processes: 288 Uptime: 2h 17m Memory: 3.84 GiB used: 2.86 GiB (74.6%)
Shell: bash inxi: 3.0.38
решение1
Отhttps://en.wikipedia.org/wiki/Memory_paging#SwappinessГоворится:
Swappiness — это параметр ядра Linux, который управляет относительным весом, придаваемым подкачке памяти времени выполнения, в отличие от удаления страниц из кэша страниц системы, когда запрос на выделение памяти не может быть выполнен из свободной памяти. Swappiness может быть установлен в диапазоне от 0 до 200 (включительно).[18] Низкое значение заставляет ядро предпочитать вытеснять страницы из кэша страниц, в то время как более высокое значение заставляет ядро предпочитать вытеснять «холодные» страницы памяти. Значение по умолчанию — 60; установка более высокого значения может привести к высокой задержке, если холодные страницы необходимо подкачивать обратно (например, при взаимодействии с программой, которая простаивала), в то время как установка более низкого значения (даже 0) может привести к высокой задержке, когда файлы, которые были вытеснены из кэша, необходимо снова прочитать, но более отзывчивые программы. Подкачка также может еще больше замедлить работу жестких дисков, поскольку она включает в себя множество случайных записей, в то время как у твердотельных накопителей такой проблемы нет. Конечно, значения по умолчанию хорошо работают в большинстве рабочих нагрузок, но для настольных компьютеров и интерактивных систем для любой ожидаемой задачи может потребоваться понижение настройки при пакетной обработке, а для менее интерактивных систем может потребоваться ее повышение.[19]
Поскольку в Ubuntu по умолчанию установлено vm.swappiness
значение 60
, я рекомендую меньшее значение, т. е. 10
, чтобы неактивные страницы в оперативной памяти были менее агрессивны по отношению к подкачке.
Выполните следующую команду, чтобы установить значение 10
(если в файле .conf еще не установлено значение):
echo "vm.swappiness = 10" | sudo tee -a /etc/sysctl.conf
Если настройка уже существует, вы можете скопировать и вставить следующее, чтобы изменить значение на 10
:
sudo sed -i "s/$(awk '/vm.swappiness/ {print $0}' /etc/sysctl.conf)/vm.swappiness\ =\ 10/" /etc/sysctl.conf
Затем активируйте изменения:
sudo sysctl -p
Вы также можете попробовать разные значения, чтобы увидеть, что подойдет вам лучше всего.
Надеюсь это поможет!