Я использую 1GB Linode (VPS) с MongoDB + Apache.
MongoDB содержит более 1,5 млн записей. Множественные экземпляры скрипта, от которых полностью зависит сервис, вызывают 50+ активных соединений и около 50 запросов в секунду.
Мой free -m
вывод
total used free shared buffers cached
Mem: 995 974 21 0 4 823
-/+ buffers/cache: 145 849
Swap: 511 79 432
Теперь скрипту требуется ~ 17 МБ для каждого экземпляра (уже оптимизированного), и, как я уже сказал, запускается несколько экземпляров. Огромная разница между свободной кеш-памятью (849 МБ!) И фактической (21 МБ). Я не могу запускать экземпляры PHP-скрипта, я получаю сообщение об ошибке выделения памяти.
Большая часть памяти используется MongoDB, что также приводит к высокой загрузке ЦП, 250+ %
. Это бесполезно, я мог бы запустить даже много экземпляров своего PHP-скрипта в пределах 849 МБ. Я хочу знать, будет ли мне лучше разместить мою MongoDB удаленно (я предпочитаю MongoHQ). У них есть план в 15 долларов в месяц, что для меня справедливо. Я мог бы понизить версию линода до 768 МБ, чего будет достаточно без работы на нем MonogDB.
Но каковы недостатки использования удаленно размещенной базы данных? 50+ подключений и ~ 50 запросов в секунду? Далее будут проблемы с пропускной способностью.
Любая помощь приветствуется.
Если вы собираетесь запускать базу данных удаленно, запустите ее в том же сегменте сети, что и серверы приложений, или, по крайней мере, в том же центре обработки данных.
Даже если у вас низкая задержка (например, <10 мс), это может повлиять на ваши запросы в зависимости от типа загружаемых данных.
Кроме того, вы завершаете добавление еще одной точки отказа в вашу систему, связь между серверами приложений и серверами баз данных может нарушиться. MongoDB не использует какое-либо шифрование в своем протоколе, и ваши данные будут очищены между бог знает сколько прыжков, если вы каким-то образом не туннелируете их. И, как вы указали, есть использование полосы пропускания. В целом, я предлагаю вам получить другой узел для запуска вашей БД, но на том же месте, что и ваш сервер приложений.