Ми запускаємо веб-додаток Ruby on Rails під Unicorn. Наш додаток не обмежений процесором (у нас є подвійна система Xeon E5645 з 12 ядрами, а середнє значення пікового навантаження становить близько 6). Ми почали з 40 працівників Unicorn спочатку, але слід пам’яті додатків збільшувався з часом. Отже, зараз нам доведеться знизити кількість робочих процесів. Я думав, що стандартна формула (кількість ядер CPU + 1) застосовується і для Unicorn, але мій колега намагався переконати мене, що ми повинні резервувати більше примірників Unicorn на процесор, і надав це посилання . Однак я не зовсім впевнений, навіщо нам витрачати стільки пам’яті на просторові процеси єдинорога.
Моє запитання: що є причиною наявності декількох екземплярів Unicorn на ядро CPU? Це пов’язано з якоюсь архітектурною особливістю Єдинорога? Я знаю, що зайняті процеси Unicorn не можуть приймати нові підключення (ми використовуємо розетки домену UNIX для спілкування з прикладами Unicorn BTW), але я подумав, що саме для цього було введено відставання. Чи можливо подолати ці 2 - 8 екземплярів Unicorn за правило центрального процесора?