Есть ли смысл в перезапуске Apache & Nginx по крону?
Так делать нельзя.
Apache сам умеет перезапускать child процессы, параметр MaxRequestsPerChild (см. гугл).
MySQL начинает потреблять больше памяти потому что при запросах некоторая часть данных попадает в память чтобы в следующий раз быстрее ответить. И потребление памяти помогает повысить производительность.
Nginx является связующим между внутренними процессами сервера и пользователями, он должен работать круглосуточно и поэтому работа с памятью там очень хорошо проработана, посмотрите модули и конфиг, может проблема в каких-то кешах.
Линукс сам по себе старается максимально эффективно использовать всю доступную память и не нужно бояться, что показывает, что занято 98%, например. Нужно смотреть, подо что именно она занята, может это дисковый кеш. 
Если занята именно процессами апача, мускула и nginx, то надо смотреть конфиги и оптимизировать их под конкретный сервер и конкретные задачи/нагрузки. 
Отдать побольше памяти для mysql - тоже правильно, чем больше таблиц размещается в RAM, тем быстрее работает база. Но, естественно, при этом надо не забывать оставить памяти для остальных сервисов.