У меня есть 2 сервера, использовать более быстрый сервер для Интернета (IIS) или базы данных (MySQL)?
В настоящее время у меня есть 2 сервера стойки 1U, один работает IIS другой MySQL. Я заменяю сервер базы данных, потому что оборудование старое. Новый сервер, который я покупаю, также быстрее, чем мой веб-сервер, поэтому я пытаюсь решить, какой сервер должен выполнять каждую роль.
Мой текущий веб-сервер - Dell R200 с процессором Intel XEON X3220 и 4 ГБ оперативной памяти. Мой новый сервер, который я купил, - Dell Poweredge 1950 с двумя процессорами Intel XEON X5460 и 16 Гбайт памяти.
Я также купил твердотельный накопитель Intel для использования с тем сервером, который станет выделенным сервером базы данных. Оба сервера в настоящее время имеют 10 тыс. Дисков SAS.
Оценка Пасс-теста CPU X3220 - 3000. Оценка Пасс-теста CPU X5460 - 10 000.
Мне кажется, что PHP использует гораздо больше процессоров, чем MySQL. Я размещаю более 30 сайтов на IIS, все из которых PHP и некоторые из них работают на Drupal. Кажется, что это может быть простой выбор, но это огромный объем работы по переносу всего с одного сервера на другой. И, возможно, я не прав в своем мышлении, и MySQL может действительно выиграть от более быстрого процессора.
2 ответа
Ответ очень зависит от того, как вы используете серверы. Вы должны потратить время на выяснение того, что ограничивает производительность на каждом сервере. Вы можете отслеживать статистику, используя что-то вроде New Relic или Munin или monitor.us (исчерпал ссылки как новый пользователь) и определите, какая из них связана с процессором, какая связана с памятью, а какая с IO.
По моему опыту, ваш веб-сервер будет привязан к процессору, а ваш сервер баз данных будет привязан к дисковым операциям ввода-вывода и памяти, так что это будет своего рода перегрузкой, поскольку новый сервер лучше в обоих отношениях. При этом, как правило, проще обновить память, чем процессор, поэтому я бы вставил больше оперативной памяти в сервер БД и установил веб-сервер на новый.
Если оба сервера являются окнами (даже тот, на котором работает MySQL), вы можете легко отслеживать узкие места, используя perfmon. Вы захотите измерить% времени ЦП, страниц в секунду (что является мерой перестановки и, следовательно, нагрузки на память) и среднюю длину очереди диска (которая является мерой ожидающих дисковых операций ввода-вывода).
Я предполагаю, что вы обнаружите, что ни один из них не привязан к процессору, и что сервер базы данных будет иметь большую длину очереди диска и страниц / сек. Это означает, что добавление большего объема ОЗУ или более быстрого диска к серверу БД даст вам лучший опыт.
Будьте осторожны, чтобы посмотреть на пики в вашей статистике, и используйте небольшой временной интервал для выборки (скажем, 10 секунд). Записывайте в файл / базу данных вместо отображения графического интерфейса и работайте с данными в Excel. Долгосрочные выборки счетчиков являются усредненными, поэтому даже 60 секунд могут скрыть действительно уродливый пользовательский опыт. Также имейте в виду, что добавление большего объема ОЗУ, как правило, уменьшает длину очереди на диск, поскольку больше операций чтения может поступать из кеш-памяти ОЗУ, а не с диска.