Yes, Nikita, you are right, the algorithm kills the ONE BIG process instead of reducing usage of the forked processes which uses much more memory.
As an example, this is from the node which was deployed hours ago and actually stays in idle state:
root@node-1:~# ps -C neutron-server -orss= | awk '{ count ++; size += $1 }; END {print "Number of processes =",count; print "Memory usage per process =",size/1024/count, "MB"; print "Total memory usage =", size/1024, "MB"}'
Number of processes = 4
Memory usage per process = 72.3037 MB
Total memory usage = 289.215 MB
root@node-1:~# ps -C mysqld -orss= | awk '{ count ++; size += $1 }; END {print "Number of processes =",count; print "Memory usage per process =",size/1024/count, "MB"; print "Total memory usage =", size/1024, "MB"}'
Number of processes = 1
Memory usage per process = 189 MB
Total memory usage = 189 MB
as you can see the Neutron, for example, eats more memory and have more processes, but MySQL overall size is much bigger, but it only one, and killing it leads to failures as expected.
Yes, Nikita, you are right, the algorithm kills the ONE BIG process instead of reducing usage of the forked processes which uses much more memory.
As an example, this is from the node which was deployed hours ago and actually stays in idle state:
root@node-1:~# ps -C neutron-server -orss= | awk '{ count ++; size += $1 }; END {print "Number of processes =",count; print "Memory usage per process =",size/1024/count, "MB"; print "Total memory usage =", size/1024, "MB"}'
Number of processes = 4
Memory usage per process = 72.3037 MB
Total memory usage = 289.215 MB
root@node-1:~# ps -C mysqld -orss= | awk '{ count ++; size += $1 }; END {print "Number of processes =",count; print "Memory usage per process =",size/1024/count, "MB"; print "Total memory usage =", size/1024, "MB"}'
Number of processes = 1
Memory usage per process = 189 MB
Total memory usage = 189 MB
as you can see the Neutron, for example, eats more memory and have more processes, but MySQL overall size is much bigger, but it only one, and killing it leads to failures as expected.