Обычно зависания связаны с:
1. Работой жёсткого диска. Медленные диски (> 500 Гб и 5200 ppm) будут тормозить систему "по умолчанию" т.к. данные с них считываются и записываются довольно медленно.
2. Частым переносом данных ОЗУ - своп. Проверяем порог когда память пойдёт в своп:
cat /proc/sys/vm/swappiness
По умолчанию - 60, это значит, что когда память ОЗУ заполнится на (100 - 60 =) 40% то слабо используемые страницы памяти будут свопится. В лучшем случае скорость чтения/записи на хард (не ССД) в 30 раз медленней...
Правим (при 10% свободной данные будут свопится):
sudo sysctl -w vm.swappiness=10
Предупреждение:
Если при большой занятости ОЗУ в таком случае открыть "тяжелое" приложение - будет вылет т.к. данные не успеют уйти в своп и приложению не хватит оперативной памяти для работы.