Comment 20 for bug 1623394

Revision history for this message
Maksim Malchuk (mmalchuk) wrote :

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.