Назад | Перейти на главную страницу

Мы переезжаем на два сервера с одного из-за проблем с производительностью. Как мы можем отслеживать ценность этого изменения?

Мы переезжаем на два сервера с одного из-за проблем с производительностью. Мы перемещаем нашу базу данных MySQL на отдельный выделенный сервер и сохраним исходную машину в качестве машины переднего плана, на которой работает nginx / apache (бэкэнд Django).

Как мы можем отслеживать ценность этого изменения? Возможно ли, что весь наш сайт действительно будет работать медленнее, поскольку запросы MySQL будут отправляться через безопасное удаленное соединение, а не локально?

Перенос базы данных на собственный компьютер очень распространен, и если все сделано правильно, это значительно повысит вашу производительность.

Однако меня беспокоит ваше «безопасное удаленное соединение». Обычно база данных должна находиться в том же центре обработки данных (и даже в той же стойке, на том же коммутаторе), что и ваш веб-сервер. Я считаю, что подходящая фраза здесь - «со связями». Когда вы говорите «безопасное удаленное соединение», у меня есть изображения vpn где-то неизвестно как далеко. Это наверняка будет проблемой.

Если, как кажется, эти два сервера не так хорошо связаны, вам следует сделать что-то, чтобы убедиться, что ваш сайт остается отзывчивым, - это проверить среднюю задержку между ними. Быстрый и грязный способ сделать это - просто пинговать от одного к другому, чтобы он продолжал работать, и смотреть время. У меня почти все 1 мс или <1 мс, иногда 2 мс или 3 мс. Если вы видите намного большие числа, возможно, вы захотите переосмыслить это.

Обычно размещение сервера БД вдали от того, что его использует, - плохая идея. Конечно, если ваши запросы сложные и возвращают небольшие объемы данных, это может быть нормально, но, поскольку вы используете Django, ожидайте много запросов и, следовательно, большую передачу и задержку.

Простой способ измерить общую производительность сайта - это Скрипач. Это инструмент, который вставляет себя в качестве прокси-сервера между вашим веб-браузером и посещаемыми вами сайтами. Я нашел его очень полезным для измерения общей производительности сайта. Хотя это напрямую не измеряет добавленную задержку от этого перемещения БД, вы должны иметь возможность получить достойное сравнение, и это безболезненно.

Я бы провел несколько тестов, используя что-то вроде ab (ApacheBench) или осада до и после перемещения сервера MySQL, чтобы увидеть, каков чистый эффект.

Возможно, что перенос MySQL на внешний сервер будет иметь худшую производительность, но это зависит от того, какие запросы вы выполняете и насколько далеко находится новый сервер базы данных. Если он находится в том же центре обработки данных на линии 100 Мбит / с / 1 Гбит / с, я бы не ожидал снижения производительности. Скорее всего, перенос MySQL на собственный сервер поможет просто за счет «удвоения» общего объема RAM / CPU, который у вас есть.