This question Why can a system become unresponsive? comes close. The answer kind of explains what is likely happening, but I just don't understand why this problem hasn't been solved since at least the 80s. Are there any theoretical reasons?

Specifically what happens is that the system runs fine without noticable performance drop while I have many tabs in my browser (happens with both Firefox and Chrome) but sometimes the opening of a new tab (or the launching of the other browser) causes the HDD to make constant noise and the mouse/keyboard input response lags so heavily that I rather cold reboot. That saves me 10 minutes and a lot of gray hair.

I disabled swap completely and the same happens. Shouldn't the kernel just kill the 1st process that reaches the limits of the physical memory, or the biggest maybe?

The kernel should not allow any processes, not even buggy/malicious, not to mention Firefox/Chrome, to cause unresponsiveness to such an extent that the quickest way out is a cold reboot. Whatever the reason. What is the reason? Can't trashing be recognized? Shouldn't a too "greedy" process be killed automatically, instead of causing the user to manually kill all of them with a reboot and loosing unsaved data?

I know about the SysRq keycombos and pkill (>10 minutes), but I dont want to have to use either of them. I want this problem to be solved automatically.

I am interested in why this isn't solved in Linux?


There is a workaround for the thrashing problem: to automatically limit system ressources per process user you can utilize the pam_limits module (via limits.conf) on Linux (CentOS and similar) or login class capability database on FreeBSD (via login.conf). You can limit typical ressources like memory usage, number of files and processes, cpu time, etc. and thereby avoid situation where one process hogs all ressources.

Usually there are no limits set by default other than kernel ressources set at compile time.

You get even better control for the price of complexity by activating control groups (cgroups) in Linux (e.g.: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/resource_management_guide/ch01)

| improve this answer | |

Not the answer you're looking for? Browse other questions tagged or ask your own question.