Зависание при вытеснении данных в своп

Уважаемые, коллеги.  

  

Я уже довольно долго бьюсь с одной маленькой, но весьма неприятной для меня проблемой.  

  

При использовании btrfs в качестве корневой fs в ситуации, когда "заканчивается" физическая память и операционная система пытается ее освободить, начиная вытеснять данные в своп, система практически перестает реагировать вообще на что-либо. В зависимости от того, насколько много было запрошено памяти приложением, система может вообще "отвиснуть" через несколько минут или, к примеру, при попытке выделения большого непрерывного куска памяти (запуск виртуалки, попытка открыть большую картинку в GIMP), система практически зависает как минимум минут на 40-60 в лучшем случае. Поэтому, в последних случаях обычно не удается дождаться возобновления нормальной работы и приходится только жестко перезагружать машину.  

  

Сразу обращу внимание на тот факт, что знаю, что btrfs не поддерживает файлы подкачки, потому во всех случаях использую только отдельный раздел.  

  

Данные симптомы проявляются на двух рабочих станциях, на которых понятно дело, что стоит совершенно разное железо. Объединяет их только наличие btrfs в качестве корневой fs, ssd и, разумеется, ОС. Я долгое время грешил на ssd, пробовал zswap и zram, всячески менял политики управления памятью и свопом, результат всё равно аналогичен - едва данные их памяти начинают вытесняться в своп, система практически встает колом и в те редкие моменты, когда htop оживает, можно видеть la выше 60.  

  

В итоге я заметил, что на третьей рабочей станции, где была примерно аналогичная конфигурация оборудования, в том числе ssd, а также версия операционной системы, подобных симптомов нет. Можно открыть хром с кучей вкладок и при этом запустить виртуальную машину, отъедающую памяти практически на 70% от объема физической, машина продолжает работать как ни в чем не бывало. Лишь едва подтормаживая. Своп при этом забит 3-4 Гб данных. Единственное значимое отличие в конфигурации в этом случае было то, что в качестве корневой fs была ext4...  

  

Я решил немедленно провести эксперимент, который заключался в том, что я перевел одну из проблемных машин на ext4 методом простого копирования файлов на другой диск с последующей правкой grub. И случилось чудо! От вышеописанных симптомов не осталось и следа. Отсюда можно сделать вывод, что как минимум одной из причин подобного поведения является btrfs.  

  

Я уж подумал, что проблему можно было считать решенной, но очень не хотелось бы отказываться от btrfs в силу некоторых её уникальных возможностей. Поэтому прошу вас, уважаемые форумчане посильно помочь, так сказать, с моей проблемой. Ибо куда дальше копать ума не приложу.  

  

Здесь я вижу, что много, кто решил свои проблемы.

Мне кажется, что у вас просто оперативная память сильно забита и скорее всего почти до предела. Не удивительно, если при обращении к SWAP всё тупить начинает. 

Код: 

```
free -m
```
всё покажет

И пожалуйста, если у вас есть доступ к компьютеру, покажите свой экран. Так будет понятнее, чем перечитывать по 5 раз.