Есть сервис, который круглосуточно собирает информацию с других сервисов. На одном сервере находится все - и БД и код проекта и сервисы по сбору информации. Из-за сервисов система загружена и сайт подтормаживает.
Предлагается 2 варианта - горизонтальное и вертикальное масштабирование. Как лучше всего организовать это все? Данные, которые собираются с других сервисов не критичны, то есть скорость их сбора не критична. В голову приходит такой вариант: 2 сервера с двумя БД и репликацией, чтобы на один сервер писать, а с другого читать. Тот, куда писать на одном сервере со скриптами по сбору информации. Второй сервер для пользователей и базой для чтения. Но плохо представляю как в этом случае работать с пользователями, куда писать их информацию? Если они отправят сообщение на один сервер, а считывать будут с другого?
В общем посоветуйте максимально простой способ это все улучшить.
Если у вас уже есть ПО, то нужно смотреть относительно него. Сможете ли вы разделить ПО безболезненным способом на 2 части.
Если бы речь шла о разработке с нуля - два отдельных сервера было бы целесообразным.
А просто обойтись репликацией БД - плохая идея.
UPD
Я бы начал с профилирования - с определения узкого места.
Где именно тормозит, из-за чего? Использование ли это процессора и/или оперативной памяти, нагрузка на сеть, или же проблемы производительности с СУБД.