Как определить оптимальное количество экземпляров ruby ​​thin/mongrel для сервера, количество ядер?

Мы пытаемся развернуть экземпляры беспорядка на машине. Каково оптимальное количество экземпляров беспородных для сервера? Поскольку экземпляр может обрабатывать параллельные соединения, я не вижу никаких преимуществ в запуске более 1 на ядро. Более того, потоки будут сражаться только за процессор. Наши предшественники выделили 10 экземпляров для 4 ядер, но я думаю, что это только вызовет конфликт ЦП. Какие-либо окончательные ответы / мнения?

Я видел этот вопрос: сколько экземпляров беспородных?

Но это действительно не достаточно конкретно.

2 ответа

Решение

Коллега написал по электронной почте автору тонкого, который подтвердил 1 тонкий экземпляр на ядро. Становится более интересным для многопоточных ядер, но это, вероятно, другой вопрос.

Коллеги сказали, что шавки блокируют на IO. Thin использует eventmachine, чтобы не блокировать ввод-вывод, и использует Mongrel в качестве библиотеки HTTP.

Экземпляры Mongrel могут обрабатывать параллельные соединения, но вы уверены, что все пути кода никогда не будут блокироваться? Я помню, что некоторые драгоценные камни все еще существуют, которые блокируют, что может вызвать проблемы.

Вместо того, чтобы искать жесткие правила, я откладываю измерения в таких ситуациях. Разработайте тест, который предлагает разумное приближение ожидаемого трафика и сравните различные конфигурации.

Другие вопросы по тегам