��ʬĹ�����ȥ֥������֤��Ƥ��ޤä��Τ����ɥͥ����դ����Τǵס��ε�����
Unicorn��Passenger����٤��ä���
�ʤ�Twitter�ǡ֥����������ʤ��Ȥ���Passenger���Unicorn�Τ�®���Τˡ���������¿���ʤäƤ����餽�εդˤʤä��פä��ä�ߤ������Τǡ�����ñ��Unicorn��worker��Â��ʤ��󤸤�ʤ��Ρ����֤����Τ����ɡ��ɤ��������Ȥ��Ȥ����äò¾¯¤ï¿½ï¿½Þ¤È¤ï¿½ë¡£
�ޤ���Unicorn��worker��1�ץ������ˤĤ�1�٤�1�ꥯ�����Ȥ����������ʤ����������㤨�С������绨�Ĥʷ׻������ɡ�ʿ��50ms���餤�ǥ쥹�ݥ󥹤��֤����ץ���Ȥ���С�1worker��20req/sec���餤���֤��뤫�ʤȸ��Ѥ�äơ��ԡ�������100req/sec���餤�������������ꤽ�����ä���worker��5�Ĥ��餤Ω�ƤȤ����ʡ�Â��ʤ��ä���⤦����äȤ��ʡ��ߤ����˹ͤ��롣�ºݤɤ󤯤餤�Υ��������ʤΤ���ʹ���Ƥʤ��Τ��Τ�ʤ����ɡ�Nginx��10worker�����Unicorn��2worker���äƸ��äƤ����顢���̵դ���ʤ����ȤĤä������Nginx�ϵդ�1worker��ʣ���ꥯ�����Ȼ�����ʿ��餯�餤Ʊ���˥�����������Ƥ��Ѥ�����餷���ˤΤ�CPU�Υ�������Ʊ��������ä�¿�����餤�Ǥ褯�ơ�Unicorn��worker�����ò¥¬¥ó¥¬¥ï¿½Î©ï¿½ï¿½ï¿½å¤²ï¿½ï¿½Ù¤ï¿½ï¿½ï¿½
Passenger�⤽�켫�Τ�Ʊ���ʤ�����ɡ�Passenger�ξ����پ夬�äƤ���������ɤ�����ꤷ����¤ޤǥץ������������䤷�Ƥ����Τǡ��֥������������Ƥ⶯���פΤǤϤʤ��ơ֥��������������餤�Ĥδ֤ˤ���ָƤ���ܤοͿ�����äƤ��פȤ������������Ȥ���ʤ����Ȼפ����åµï¿½ï¿½Å¾ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½Î¤Ï¡ï¿½Unicorn��worker�����ʤ��ס֥ꥯ�����ȿ��������Ƥ�1��1�Ĥν������֤��礷���Ѥ��ʤ��ס֥����CPU�ˤ�;͵������פäƾ��ΤȤ����Ȼפ��Τǡ�¿ʬUnicorn��worker����Ŭ�ڤʿ���Ĵ������в�褹�롣
worker�ο����䤷������꿩���󤸤㡢�äƸ����äʤ顢Unicorn��worker�ץ�������Ω���夲�����˥��ץ��preload������Ȥߤ����롣���ץ�����������ɬ�פʥ饤�֥��������ɤ߹���Ǥ���С�worker�ץ������ε�ư��ñ�ʤ�fork�ʤΤǡ�CopyOnWrite�ǿƥץ������ȥ����Í���Ƹ�ΨŪ�˻ȤäƤ��줽���ʵ��ۤϤ��롣����Ǥ⿩���ä��㿩�����ɤ⡢worker����Ω���夲�������Â��ʤ��ʤ�ʤ�Passenger�Ǥ�Ʊ���á�ʿ����ˤ����󤷤Ƥ���뤱�ɤ⡢΢���֤��е޷�ʥ�����������˺ݤ��ƤϹ��Ƥƥץ�������������륳���Ȥ���پ夬�뤳�Ȥ⤢�뤷��ñ�Τ���Ӥ����Unicorn�Τ��ޤ����̤˶��������̥��������������������Ū������ʬ���äƤ�ʤ�Unicorn�ǡ���¿�ˤʤ��ʤ餪��ڤ�Passenger�ǡ��ߤ����ʻȤ�ʬ����
Rainbows!�äƲ�
�����ޤǤ��äϤ����ޤǡ�1��1�ĤΥꥯ�����Ȥ��礷�ƽŤ��ʤ����ɰ��٤������Υꥯ�����Ȥ������ä����٤��ʤä����ߤ����ʾ�硣�㤨�Ф��ä��Ȱ�äơ�ʿ�ѤǸ����100ms���餤�ʤ�����ɡ�20���1�󤯤餤�γ���1500ms���餤������ꥯ�����Ȥ����뤳�Ȥ����롢�Ȥ��롣���줬���ޤ���5��Ʊ���˥ꥯ�����Ȥ��Ƥ��ޤä��顢5worker�����줾��1.5�ä��Ĺ�«����Ƥ��δְ��ڥ쥹�ݥ󥹤��֤��ʤ��ʤ롣�����Ǥϥե����륵���Ф˥ǥ����ե�����񤤤Ƥ�Ȥ���DB�˽Ť��������ꤲ�Ƥ�Ȥ���APIá���Ƴ�������ǡ�����ä���Ƥ�Ȥ��ǡ��ºݤˤϥ��ץ꼫�Τ��ԤäƤ������CPU�����⥹�å��������ߤ����ʾ��֤Ǥ��äƤ⡣����ʳ��Υꥯ�����Ȥ�30ms���餤��¨���Ǥ���Τ��Ȥ��Ƥ⡣
Rainbows!�ξ���Unicorn��١����ˤ��Ƥ��뤱��ɤ⡢EventMachine�Ȥ�Revacator�ߤ����ʥ��٥�ȶ�ư�饤�֥���Ȥä�1worker������˥ꥯ�����Ȥ�����Ǥ���褦�ˤ��Ƥ��롣���ä��ߤ�����Ĺ�����Ԥ��ˤʤ�ꥯ�����Ȥ���ƤƤ⡢�ԤäƤ�֤�¾�ο���ms���٤��֤���ꥯ�����Ȥ������äƽ��������֤��롣1�ץ�����1�ꥯ�����Ȥ��Ȥ������Τ��Ǥ�Unicorn����worker�����餻�ƥ���ѥ��Ȥˤʤ뤫�⤷��ʤ��������ƥ��٥�ȥ롼�פ���ǥ��ץ꤬ư���Τ�AsyncSinatra�ߤ����ʥե졼������Ȥäƥ��ץ������Ʊ��������񤱤롣�ʤΤǽŤ��ꥯ�����Ȥ�������Ϥ��ä���Ȥ��Ȥ������ä��äˤʤ롣
�ʤ���ɤ����ȤŤ��ᤸ���Unicorn����ʤ��Ҥ���󡢤äƤʤ뤫�Ȼפ��Ф����Ǥ�ʤ���Unicorn�����⤽��prefork��1�ץ�����1�ꥯ�����ȤǤߤ����ʡ��Ҥɤ�����ڤä������褦�ˤ�äƤϳ�ȸ�ŵŪ�ʻ��ȤߤˤʤäƤ�Τϡ���Ԥ��Ƥ������٥�ȶ�ư����Thin�ߤ����ʥ��ץꥱ������󥵡��Ф��Ф��ƤΡ֥���ץ���������Τ������ڤ������ʤ��������ǥѥե����ޥ󥹤�Ф뤸���פߤ����ʥ�����ơ���Ū�ʤȤ������ä��ꤹ��Τǡ��虜�虜ʣ�������ᤷ�Ƥ�Rainbows!�Ϥ����������åȤȤΥȥ졼�ɥ��դˤʤ롣�Ȥ����ʤ�����Ũ�ʴ����ˤϤʤ뤱�ɡ�worker���䤻�в�褹�����٤��äʤ��Ǥ�Unicorn�Ǥ��礷�ƺ���ʤ���
�ɵ�
��Unicorn�����ʥ�����Хץ��������䤷���긺�餷����Ǥ��뤫�顢netstat�Ȥ����ƵͤޤäƤ������ä��鼫ư��������褦�ˤ��Ƥ롼����¿�������ʤ����ɡפäƤ����������ä���TTIN�ǥץ��������䤹��TTOU�ǥץ��������餹�Ȥ��Ǥ���Τǡ���ư�����������ߤ�����Фʤ�Ŭ���˴ƻ륹����ץȽ񤤤�Ŭ�������ʥ�����褦�ˤ��Ȥ��Ф������⡣�ޤ�������äƤ⤤������