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

Меньше больших серверов или больше меньших?

Для серверов, которые обслуживают только PHP (memcache + MySQL), лучше иметь меньше больших серверов (8-ядерные) или больше серверов меньшего размера (4-ядерные).

Не существует единственного правильного ответа, и популярное мнение по этому поводу постоянно колеблется. Мое личное мнение принимает во внимание то, что происходит, когда сервер умирает. Все, что я когда-либо работал с несколькими меньшими серверами, упростило восстановление. В крайнем случае я мог бы использовать рабочую станцию, чтобы заполнить пустоту, ожидая прибытия нового сервера. У других есть свои причины отдавать предпочтение меньшему количеству и более мощным серверам, поскольку виртуализация является обычным явлением (попробуйте заменить этот сервер на рабочую станцию!). По правде говоря, ни один из ответов не применим везде.

Лучшее, что вы можете сделать, - это иметь сервер только для MySQL и один для PHP + Memcached. Затем, в зависимости от нагрузки, которую вы возлагаете на них, вы можете сбалансировать их нагрузку с помощью еще одного сервера ... Сервер базы данных всегда должен быть самым мощным, поскольку он должен обслуживать множество запросов одновременно.

Тем не менее, я должен помнить, что это всегда зависит от нагрузки, которую создают веб-сайты на этом сервере ... Для небольшого сайта, скажем, 4000 посетителей в день, вы можете легко разместить все на одном сервере, но если вы говорите веб-сайта с более чем, допустим, 10 тыс. посетителей в день, тогда у вас будет серьезное преимущество, если вы разделите свою службу (mysql, apache и т. д.) на несколько серверов. Это также очень зависит от того, о каком веб-сайте вы говорите.

Надеюсь, это вам немного поможет.

Все, что вам нужно знать о масштабировании (большие серверы Iron) или масштабировании (множество маленьких серверов), можно прочитать в сообщении Джеффа Этвуда здесь: http://www.codinghorror.com/blog/archives/001279.html. Перейдите по ссылкам в его сообщении на «My Scaling Hero», где тоже есть хорошая история.

В этих сообщениях нет ответов, но они дадут вам четкое указание, как найти свои собственные ответы, потому что ответы у всех будут разными.

И если вы не знаете, кто такой Джефф Этвуд, то он один из отцов-основателей сайтов Stack Overflow / Server Fault / Super User, а также всемирно известный блоггер в области программирования / ИТ, и хотя вам следует никогда воспринимайте любые личные мнения о интервалах как евангелие, точные цифры в этом посте действительно заставляют задуматься.

Могу ли я предложить альтернативную настройку - такую, которая включает в себя «легкую» виртуализацию, такую ​​как OpenVZ / VServer (или даже Xen). Вы можете получить одну мощную машину и разбить ее на несколько меньших виртуальных машин, чтобы получить преимущества обоих миров.

Дилемна всегда одна и та же: «Многие серверы» стоят меньше, но они, как правило, менее стабильны: поэтому время обслуживания увеличивается. (Я знаю, что ЭТО НЕ всегда правда ...)

«Несколько серверов» стоит дороже, но, как правило, они более стабильны (из-за высокого качества компонентов), НО это также означает, что вы будете размещать больше сервисов, если у вас возникнут какие-либо проблемы, это повлияет на большее количество сервисов.

Вам следует подумать о виртуализации, она сочетает в себе оба вопроса: у вас будет высококачественный стабильный сервер rox и внутри ваших «многих серверов». Если возникнет какая-либо проблема, это затронет только соответствующий сервер.

Судя по тому, что я испытал (небольшой опыт thouhg: p), всегда лучше указать цену, чтобы избежать боли позже. На производстве люди не заботятся о наших проблемах, они хотят только видеть, как все работает в любое время.

Возможно, некоторые вопросы, на которые вы сможете ответить, помогут вам ...

Несколько больших серверов:

Сможете ли вы получить достаточно большой сервер? Увеличивается ли нагрузка на этом сервере? Что происходит, когда он терпит неудачу? Можете ли вы купить два из них или заплатить компании XXX достаточно, чтобы исправить это достаточно быстро?

Множество небольших серверов:

Вы загружаете эту модель горизонтально? Некоторые нагрузки делают, некоторые нет. Что происходит при неудаче? Сможет ли оставшийся N-1 справиться с нагрузкой, пока не почините сломанный? Как быстро вы сможете получить новую копию нужного сервера?

Если вы выберете множество моделей небольших серверов, я бы настроил их как можно ближе, чтобы вы могли заменить один на другой.

Мы используем марионетку для этого, чтобы серверы можно было поменять местами, и, переименовать, и воли, система работает. Что ж, новая система настроена по модулю отладки, которую вы должны выполнить, потому что вы что-то забыли ...