On my server, I have a long running batch process, process_a, which have been running for several days now. I don't mind the duration of which the process needs. The problem is how process_a always hogs ALL (99%) of the memory (RAM) to itself. I have process_b which I really need to be ran now. However, process_b is always hanging presumably because of insufficient RAM.
Is there a way to limit a process' memory usage while it is running?
I do not want to restart process_a because all the progress made could be lost. I am not the owner of the program that runs process_a, so I cannot modify process_a to save progress checkpoints at regular intervals. I am thinking of maybe somehow forcing half the memory of process_a to be dumped to swap in order to regain some memory for process_b.
All the answers to this question and this question does not address the fact the the process is running.