В фоне запущенно 300 PHP скриптов. В разных местах скрипта напичкан лог потребления памяти
$mem = round((memory_get_usage() / 1024000), 3) . ' MB';
В итоге все значения выдают от 5 до 6 мб. Т.е. получается 300 скриптов * 6 мб памяти = 1 800 мб потребляемой RAM.
Но команда free -m показывает, что используется 12-13 ГБ.
Есть подозрения, что это из-за MySQL т.к. каждый экземпляр скрипта тянет за собой соеденение с базой которое висит по 5-7 часов (время выполнения скрипта).
SHOW PROCESSLIST
показывает чуть более 300 процессов.
Есть вариант отказаться от постоянного соеденения с базой, написать API которое будет работать с этой базой. Т.е. фоновый пхп скрипт (которых 300 штук) будет работать не напрямую с БД, а по REST API. Это позволит избежать от большого кол-ва висящих соединений с БД.
Поможет это сократить потребление RAM или может быть причина не в этом?