Всем привет, вопрос не ясный для меня, сказало мне начальство вычислить, какие параметры должны быть у сервера/облака чтобы его купить/арендовать. Сам я далек от темы нагрузки на сервер. Дык вот, требуется два сервера, один будет turn сервер, на втором будет крутится медиа сервер. Вот возник вопрос, как посчитать правильно? Просто запустить поток и посмотреть как растут параметры в atop или есть какие-то более правильные вещи? Заранее благодарен всем за помощь!
Поднять аппликацию на небольших серверах и посмотреть как работает - производительность, необслуженные запросы, нагрузка на серверы. Если есть проблемы - проапгрейдить сервер(ы).
Если не жалко реальных пользователей - то нагружать системы ими. Но лучше конечно сделать скрипт который имитирует пользователей. Естественно, нужно представлять кол-во пользователей и что они делают в среднем.
amiznikov,
На мой взгляд ответ простой - что каждый запрос обрабатывается в заданное время и нет ошибок.
Все инфраструктурные вещи, типа IOwait>70% - дают дополнительную информацию и помогают оптизировать систему.
Vitaly Karasik, да в том-то и дело, непонятно от чего ориентироваться и какой критерий будет значимым. При добавлении пользователей я вижу что меняются какие-то параметры, но можно ли их брать за основу вычислений мощностей для будущего сервака или нет, непонятно. И непонятно, он мне указывает загружен 1% при таком процессоре, это значит что при более мощном процессоре у меня будет меньше процента занимать?
amiznikov, тогда расскажите подробнее о вашей системе - компоненты, что с чем "разговаривает" и т.п.
На мой взгляд, каждый сервер (точнее, сервис) всегда кого-то обслуживает - или запросы от конечных пользователей, или от других компонент. То есть всегда есть критерий - выполняет сервис свою функцию или не справляется.
Кстати, а сейчас серверы с такой функцией есть?
Экстраполировать 1% нагрузки процессора очень-очень грубо, так как есть еще и память, и диски, и сеть. Да и с процессором не все линейно.
Vitaly Karasik, без проблем) тут все просто, есть у нас один медиасервер который отвечает лишь за транскодинг и есть турн сервер. Турн сервер - основная проблема, его задача ретранслировать поток. В вебртц иногда бывает такое, что просто невозможно соединить двух пользователей напрямую(типо какой-нить юзер за симметрик нат) и для этого используют сторонний сервер, который будет просто гонять трафик от одного к другому. Примерно как-то так это выгдядит. Эти два сервера(компонента) - медиасервер и турн сервер не связаны с собой, но должны лежать на разных машинах/впс/серверах/облаках и тп. Сейчас есть сервер, есть открытые сервера. Но надо понять, какую нагрузку они несут, чтобы посчитать какой мощности нам хватит
amiznikov, возвращаюсь к моему первому ответу - просимулировать нагрузку (типа - 100 одновременных разговоров, из которых 20% нуждаются в турн сервере), и посмотреть нет ли обрывов.
Альтернатива - если у вас сегодня есть серверы, работой которых вы довольны, и не ожидается значительного увеличения нагрузки, то взять новые серверы такой же конфигурации.
Насчет мощности - по моему опыту с VoIP, при работе с медиа часто bottleneck совсем не процессор, а сеть.
Однажны мы уперлись в лимит NIC - причем не по banchwitch, а по количеству пакетов.
В конечном итоге, сегодня все виртуализировано, и upgrade сервера в случае необходимости занимает секунды, а не дни, как в старое время.
Vitaly Karasik, Просто суть в том, что мы понять хотим сколько нам брать чтобы не переплачивать, из этого начальство задает вопрос, сколько будет ресурсов жрать 1 человек
да и то, что один человек будет жрать 0.001% цпу - не значит, что 1000 человек сожрет 1%
у вас есть сейчас сервера? вы потребляемую полосу видите? вы нагрузку на сервера видите? вас качество сервиса устраивает? Если ответ да - ну попробуйте снизить конфигурацию серверов )
Но я бы не трогал...
Поднимите на виртуальной машине и проверьте.
Один поток можете и сами создать, а дальше уже умножите.
В любом случае переплата будет, так как нужен резерв по мощности, чтобы нелагало.
Я не знаю, что это у Вас за хрень будет на серверах, поэтому тестеры не подскажу.
На виртуальной машине это у Вас 1 ядро?
Какая частота у процессора?
Сколько оперативной памяти используется всего?
Сколько оперативной памяти используется только вашими процессами?
Сколько трафик мегабит в секунду?
Сколько пакетов в секунду?
Сколько одновременно потоков планируется отдавать?
...
возможно что-то специфическое замеряется Вам виднее