Вы должны тщательно измерить, сколько у вас служебной памяти - я не вижу, что enginex и Apache имеют большое значение, это PHP, который будет использовать всю оперативную память (это, в свою очередь, зависит от того, сколько процессов выбирает веб-сервер для запуска). , но это больше проблема тюнинга).
Лично я бы держался подальше от enginex на том основании, что слишком странно запускать такой странный сервер в работе.
Базы данных всегда нуждаются в большом количестве оперативной памяти, и единственный способ разумно настроить буферы памяти - это разместить их на выделенных серверах. Это предполагает, что у вас есть большие данные.
Если у вас очень маленькие данные, вы можете хранить их в одном окне.
Аналогично, memcached практически не имеет смысла, если вы не запускаете его на выделенных блоках. Извлечение памяти из MySQL для передачи memcached действительно отнимает у Питера деньги Полу. MySQL может кешировать содержимое в свой innodb_buffer_pool довольно эффективно (это экономит ввод-вывод, но может в конечном итоге использовать больше ЦП, поскольку вы не будете кешировать логику представления и т. Д., Что возможно при использовании memcached).
Memcached имеет смысл только в том случае, если вы запускаете его на выделенных коробках с большим количеством оперативной памяти; это также разумно, если у вас недостаточно ворчаний на ваших серверах БД, чтобы обслуживать нагрузку чтения вашего приложения. Подумайте об этом перед развертыванием.