Я щойно виявив, що в моїй системі немає місця для обміну
Якщо це правда, то, мабуть, це сприяє проблемі.
Використовуючи декілька віртуальних машин з великим розподілом пам'яті, об'єм оперативної пам’яті, як правило, більше ніж достатній для нормального використання (8 Гб), починає затягуватися, а це означає, що ваша система не зможе використовувати стільки кешу, і захоче поміняти місцями. . Тепер, якщо у вас немає підкачки, буде ще більший тиск на пам'ять, і ви навіть можете вбити завдання через те, що не вистачає пам'яті.
Swap намагається підвищити загальну стабільність та продуктивність у таких ситуаціях, як описана вами, шляхом виділення на диск деяких виділених, але рідко використовуваних даних, звільняючи пам'ять для даних, які ви використовуєте. Додавання swap, якщо у вас цього немає, допоможе. Однак у плані продуктивності ви значно покращиться, якщо також купите більше оперативної пам’яті або будете використовувати менше.
У системі, де ви працюєте з віртуальними машинами, але ви також використовуєте звичайний робочий стіл на хості VM, ви не хочете, щоб ваші VM зайняли всю вашу оперативну пам’ять, адже я би заощадив половину оперативної пам’яті (до 4 Гб ) для хоста, якщо ви працюєте з програмним забезпеченням на хості та хочете, щоб воно відповідало.
Зауважте також, що віртуальним машинам властива неефективність не лише тому, що їх оперативна пам'ять є абсолютно окремою, вони не ділять кеш-пам'ять або буфери, але вони працюють цілою окремою ОС під низкою шарів абстракції. Таким чином, ви завжди зможете досягти кращої ефективності, якщо вирішите запустити щось на хості, а не на VM - хоча якщо вашою метою використання VM є використання інших операційних систем, це буде неможливо.
Чи є спосіб переконатися, що користувальницький інтерфейс продовжує реагувати, коли мою систему тремтить?
Коли обсяг оперативної пам’яті у вас є проблемою, все, що ви можете зробити, це лише злому - справжнє рішення - придбати більше оперативної пам’яті (хоча у вашому випадку, як я вже згадував, ви зможете просто виділити менше VM).
Ваше питання задається простими словами - ви хочете, щоб інтерфейс користувача міг продовжувати працювати безперебійно, навіть якщо IO перевантажений. Однак відповісти складно. Ваша система вже буде робити це якнайкраще: операції, які не потребують доступу до диска, не затримуються. Якщо ваш "інтерфейс заїкається", це тому, що конкретний процес, відповідальний за цей інтерфейс, потребує доступу до диска. У ситуації з низькою пам’яттю та, коли диск лущить, навіть те, що зазвичай є тривіальним - наприклад, читання деяких конфігурацій з домашнього каталогу, щоб дізнатися, які є ваші налаштування дисплея, - може бути повільним через виснаження кеш-диска.
Я міг уявити щось на кшталт "приємного" для пам'яті (щоб я міг приємно переглядати Chrome і мій VM)
Насправді немає «приємного для пам’яті». Доступ до пам'яті настільки швидкий, що зазвичай його практично можна ігнорувати. Коли ви молотите, це не пам'ять, це диск, ось у чому проблема. Через це є "іоніка". Хоча це, мабуть, не те, що я рекомендував би у вашій проблемі.
Іншим грубим еквівалентом «приємно для пам’яті» є своп - ви не можете контролювати, наскільки обмітний кожен процес окремо, але система робить досить непогану роботу, щоб розробити, які процеси ви активно використовуєте, а тому є більш важливим пріоритетом, який слід зберігати ОЗП.
Але, як я вже сказав, і як це золоте правило, якщо у вас не вистачає оперативної пам’яті, то купувати більше оперативної пам’яті - це рішення з найменшими головними болями та недоліками.