Kami menjalankan aplikasi web Ruby on Rails di bawah Unicorn. Aplikasi kami tidak terikat dengan CPU (kami memiliki sistem dual Xeon E5645 dengan 12 core dan nilai rata-rata beban puncak sekitar 6). Kami mulai dengan 40 pekerja Unicorn awalnya tetapi jejak memori aplikasi meningkat seiring waktu. Jadi, sekarang kita harus menurunkan jumlah proses pekerja. Saya pikir formula standar (jumlah inti CPU + 1) berlaku untuk Unicorn juga, tetapi kolega saya mencoba meyakinkan saya bahwa kita harus memesan lebih banyak contoh Unicorn per CPU dan menyediakan tautan ini . Namun, saya tidak begitu yakin mengapa kita perlu menghabiskan begitu banyak memori pada proses Unicorn yang menganggur.
Pertanyaan saya adalah: apa alasan untuk memiliki lebih dari satu instance Unicorn per core CPU? Apakah itu karena kekhasan arsitektur Unicorn? Saya menyadari bahwa proses Unicorn yang sibuk tidak dapat menerima koneksi baru (kami menggunakan soket domain UNIX untuk berkomunikasi dengan Unicorn instance BTW) tetapi saya pikir jaminan simpanan diperkenalkan tepat untuk mengatasi hal ini. Apakah mungkin untuk mengatasi contoh Unicorn 2 hingga 8 ini per aturan CPU?