Большая посещаемость, порядка 10 проектов всего, по три проекта на каждом сервере. Проекты на тяжелющем Битриксе (скорее всего будем переписывать весь движек и избавлятся от битрикса). На каждый сервер идет большая нагрузка.
Вопрос:
Как на ваш взгляд, будет ли конфигурация эффективнее, в которой один сервер выполнит роль сервера БД, а два остальных для компиляции php кода (либо один для компиляции второй для статики и кэширования).
Я не знаю как точно оценить количество ежесекундных запросов к серверу, думаю это порядка 30 запросов в секунду.
Кэширование используем где это возможно, но таких страниц мало. Варианты кэширования пробовал как в файлы, так и в memcached. Из за некоторых ошибок в их функциях полностью изучал код функций кэширования, мне показалось оно не таким уж и хорошим.
Нет, «1 сервер под БД» в данном случае будет не так эффективно.
И, кстати, применительно к вашему хостеру — поаккуратнее там) они могут вам 3 сервера в 3х разных ДЦ дать.
А по сабжу — попробуйте сначала взять 12 ядерник с 2xSAS и 1xSSD. На ssd — базы, на SAS — файлы. 90 хитов в секунду для него — лениво почесаться. Ну… если вы хотя бы немного думали, настраивая битрикс, само собой…
Боюсь такая конфигурация у моего хостера будет стоить столько же сколько мы сейчас платим за три сервера. Конечно я не спорю, что он будет работать значительно лучше. Что вы имеете ввиду под настройкой битрикса? В нем отключена большая часть модулей, и все равно рабочая область занимает 30 % процентов генерации страницы, ядро битрикса 60%.
Сейчас есть свободный сервер, думаю попробовать конфигурацию, которая рекомендуется битриксом, Debian + LAMP. Как бы вы сделали для высоконагрузочного проекта? пики по проектам 400 онлайн.
> Боюсь такая конфигурация у моего хостера будет стоить столько же сколько мы сейчас платим за три сервера
я в курсе, потому её и посоветовал.
> Что вы имеете ввиду под настройкой битрикса?
минимизацию я и имел в виду. просто встречал экземпляры, которые на моих вдсках выдерживали 1 хит в секунду (мой блог для сравнения на такой же выдерживает 40-50)
> Как бы вы сделали для высоконагрузочного проекта?
1,2,3,4) быстрые диски. 2xSATA — это мало для i7. Да и время отклика у них будь-будь.
5) KVM контейнеры для апача и интерпретатора PHP. Возможно — гугловский мод для апача.
6) общее хранилище для контейнеров KVM и физической машины
7) nginx на хосте, который проксирует запросы к контейнерам и раздаёт статику
Почему… сложный и многогранный вопрос на самом деле. Контейнер KVM под la 100+ и over 2k хитов в секунду — это не труп, а вполне себе откликающаяся по ssh машинка (естественно, что 2к страниц отдавать в секунду такой контейнер не будет, но жить будет). Даже с 1 ядром. К тому же, в результате пользователь увидит хотя бы bad gateway, если контейнеры ограничивать в аппетитах. А на bad gateway можно попробовать прикрутить refresh страницы через 1 секунду.
mysql… тут стоило бы подумать, но, наверное, отдельный контейнер, дабы mysql не кушал лишнего.
А так — нужно экспериментировать и замерять. Теория с битриксом невозможна. От положения звезд слишком многое зависит.
> 400 пользователей онлайн
данной цифрой даже оперировать не нужно. Смотрите на количество хитов в секунду. nginx с keepalive Off позволит держать онлайн и тысячи пользователей, если количество хитов укладывается в аппетиты интерпретатора php (mod_php, хотя бы).
Думал о этом, останавливает то что новый сервер с этими параметрами стоит 40 евро/месяц, а SSD диск отдельно к существующему серверу 25 Евро/месяц. Вроде как получается неэффективно.
Эффективность вопрос спорный! Вопрос от чего больше прибыль. От медленной дисковой системы и маленькой платны. Или от большой платы и на порядок более быстрой дисковой подсистемы?
А как без php опознать пользователя, узнать админ он или нет допустим. И что делать с индивидуальными блоками данных, таких, в которых хранится допустим логин пользователя.
Давайте начнём с того, что у вас в каждом сервере 1 процессор, а не 2, как вы написали.
Ответа на ваш вопрос в вашей формулировке нет и быть не может. Что будет с производительностью в вашем вопросе зависит только от кривизны настроек. Я бы поставил на то, что производительность БД упадёт, т.к. в пике её будут обслуживать не 24 ядра, а 8. А является ли БД слабым местом не известно.
Присоединяюсь к ответу inkvizitor68sl. На счет большой нагрузки, Битрикс тут ни при чем, проверьте сайты, проведите анализ нагруженных страниц с включенной отладкой, посмотрите где у вас не кешируются компоненты или где много соединений к базе, отключите не используемые модули.