�۾���:������ ������Ʈ ���ɰ��� ���� Ŀ�� Ʃ�� ��� ��ȸ��:1187 taejun@tunelinux.pe.kr http://tunelinux.pe.kr/ ������ �� ������Ʈ�� ���ɰ����� ���� Ŀ�� Ʃ�� ����Դϴ�. �ɽ��� �е� �ѹ� ������ �� ������. (���� ���� �� ��) ���� �׳� �ڷḸ �Űܿ��� ���Դϴ�. �����ڷ� http://www.apache.org/docs/misc/perf-tuning.html web performance tunning - ������ ������ ������ ���� �ֽ��ϴ�. ������Ʈ�� ���� ������ ���ؼ��� Ŀ�ο����� �մ��ִ� ���� �ƴ϶� OS, ��Ʈ��, ���α��� �� �پ��� ������ ���� �����ؾ� �Ѵٴ� ���Դϴ�. ���� �ϵ���� ������ �������� ����ä ������ �ٲٸ� ������ ����ٴ� ���Դϴ�. ���� �Ϲ������� ������ html���� ������ �ȵ����� ������ ���������� ����� ���� ��Ʈ���� �ƴ϶�� cgi�� ��찡 �����ϴ�. ����ġ�� ����ִ� ab, ���н��� time, ping, netstat �� �پ��� ���ɾ���� �̿��ؼ� �� �ý����� ���¸� ������غ��� �ӵ��� ��� ���ƾ� �մϴ�. ���� �ƹ��� Ʃ���� ���ص� ���������� �̹����� ��û���� �־�дٸ� �����ϴ°�������. ���� �� �鼭 �ũ�� ����Ŭ Ʃ���� �Ѵٰ� �ߴ��� cpu 4��, �� 2G�� �ý��ۿ��� ������ �Ϲ�PC���� ����Ŭ�� �� ������������. �� �� ��쿡�� �⺻���� ����ϴ� ���� �� �������� ������. �Ʒ� ������ keepalive �ɼ��� ���� ����Ʈ���� ��쿡�� off�� �� ���� ���� �� ���� ��쵵 ���� �ֽ��ϴ�. ���� ó���ϰ� ������ �������� �����ִ� ���� �ƹ��ϵ� ���� ����ä �׳� ���μ����� ������� ��� �ͺ��ٴ� ������. ������(taejun@tunelinux.pe.kr http://tunelinux.pe.kr) �� ����ġ �� ���� Ʃ�� ����ġ �� ������ Ʃ���� �����ϰ� �� �κ����� ���� �� �ִ�. ù ��°�� �ҽ��ڵ忡 �ϵ��ڵ� �Ǿ� �ִ� ���� ���� �����ϴ� ���̰�, �� ��°�� ȯ�漳�� ������ �� ���� ������ �����ϴ� ���̴�. 1) �ҽ����� httpd.h ���Ͽ� �������� ��� HARD_SERVER_LIMIT ���� 256���� �⺻ �����Ǿ� ������, �� ���� ������ ������ �� �ִ� �ִ� ������ �ǹ��Ѵ�. �� ���� 1280���� �����Ѵ�. 2) ȯ�漳�� ���� ��. KeepAliveTimeout Ŭ���̾�Ʈ�� ������ ������ ���� ��� �ϳ��� �� ���� ���μ����� �ش� �� �������� ���� ��ü���� ������ ���ο� ���μ����� �������� �ʰ� ���������� ������ �����ϸ� ����ϸ�, �� Ŭ���̾�Ʈ�� ��û�� ���� Ÿ�Ӿƿ��� ���� ���̴�. �⺻ 15�ʿ��� 30�ʷ� ����. ��. MaxKeepAliveRequests �� ���� ���μ����� ���������� ������ �����ϸ鼭 ó���� �� �ִ� ��û �����̴�. 100���� �����Ǿ� ������, 10000���� ����. ��. StartServer, Min/MaxSpareServer �⺻ ������ 5, 5, 10�����̸�, �� ������ Standalone ����� ��� ���ο� ���� ��û�� ������ ������ Spare Child Process�� ��ũ�Ͽ� ���ο� Child Process�� �����Ƿ� �⺻������ Spare Process�� �������� ���ֿ� ���� ��ó�� �� �ִ�. StartServer 20, MinSpareServer 20, MaxSpareServer 40���� ����. ��. MaxRequestsPerChild �� ���� ���μ����� ���� Ƚ���� Ŭ���̾�Ʈ ��û�� ó���ϰ� ����Ǵ� ��ġ�̸�, 1000���� ����. ��. MaxClients ���ÿ� ����� �� �ִ� �ִ� ���μ��� ���� �����ϴ� ���̸�, �⺻ 256���� �����Ǿ� �ִ�. �̸� 512���� ����. ��. �α����� ���� �̿��ڰ� ������ ������ ��ϵǴ� access_log ������ ��� �ѹ� ���Ӵ� �� 85����Ʈ�� �����ϸ�, ���ӷ��� ���� ��� �� ������ ũ��� ������ ��û����. �̷� ��� ���Ӷ����� �α������� �����ϴµ� ����� �ð��� ���ϰ� �ɸ��Ƿ� �α� ������ �����ð����� �ʱ�ȭ�Ͽ� �� �淮ȭ ���� �� �ʿ䰡 �ִ�. ����ġ���� �����ϴ� rotatelog�� �̿�. ��Ŀ�� ����Ʈ ���� Ʃ�� Ŀ���� �����ϴ� �Ķ���Ͱ��� /proc ���� �ý����� �̿��ؼ� ������ �Ϸ�� �����Ŀ� �����Ѵ�. ���⼭�� �ַ� ���Ͻý��۰� ��Ʈ�� �ڿ��� ���õ� ���뿡 ���ؼ� Ʃ���Ѵ�. 1) ���� �ý��� ���� - ������ Ŀ���� �Ҵ��� �� �ִ� ���� ������ �ִ밪 : 4096 -> 32768 - ������ Ŀ���� �Ҵ��� �� �ִ� inode ������ �ִ밪 : 16384 -> 65536 - root ����ڿ� ���� �Ҵ��� �� �ִ� ���� ������ �ִ밪 : 1024 -> 32768 - �ϳ��� ���μ����� ������ �� �ִ� ������ ���� : 256 -> 512 2) ��Ʈ�� �ڿ� ���� - TCP �� Keep Alive ������ ������ �ð� ���� : 7200 -> 1200 - ������ �� CLOSE�DZ� ���� ������ FIN �� ��ٸ��� �ð� : 180 -> 30 - �ϳ��� TCP ���� ��û�� ���� ������ �������ϴ� Ƚ�� : 7 -> 2 �̷��� �����Ǵ� ������ �ý����� ���õǸ鼭 ��ũ��Ʈ�� ���� �����Ǿ�� �DZ� ������ /etc/rc.d/rc.local ������ ������ �κп� ���ǵȴ�. �� Ŀ�� �ϵ� ���� Ʃ�� Ŀ�� �ҽ��� ���� �����Ͽ� ���Ѱ��� �����Ѵ�. �̸� ���ؼ��� Ŀ�� �������� �ʼ����̸�, ���ɽ��� ������ �ʿ��ϴ�. - ���� ���� ���� - ó���� �� �ִ� ���μ��� ���� **���� 1. ����ġ �� ���� Ʃ�� - apache/src/include/httpd.h: HARD_SERVER_LIMIT 256 -> 1280 - apache/conf/httpd.conf: MaxKeepAliveRequests 100 -> 10000 KeepAliveTimeout 15 -> 30 MinSpareServers 5 -> 20 MaxSpareServers 10 -> 40 StartServers 5 -> 20 MaxClients 256 -> 1024 2. Ŀ�� ����Ʈ ���� Ʃ�� - ulimit -n 32768 - /proc/sys/fs/file-max: 4096 -> 32768 - /proc/sys/fs/inode-max: 16384 -> 65536 - /proc/sys/net/ipv4/tcp_keepalive_time: 7200 -> 1200 - /proc/sys/net/ipv4/tcp_fin_timeout: 180 -> 30 - /proc/sys/net/ipv4/tcp_sack: 1 -> 0 - /proc/sys/net/ipv4/tcp_timestamps: 1 -> 0 - /proc/sys/net/ipv4/tcp_syncookies: 0 -> 1 - /proc/sys/net/ipv4/tcp_retries1: 7 -> 2 - /proc/sys/net/ipv4/tcp_max_syn_backlog: 128 -> 8192 - /proc/sys/net/ipv4/tcp_window_scaling: 1-> 0 3. Ŀ�� �ϵ� ���� Ʃ�� - /usr/src/linux/include/linux/fs.h: NR_FILE 4096 -> 32768 INR_OPEN 1024 -> 32767 - /usr/src/linux/include/linux/tasks.h: NR_TASKS 2560 -> 3192 MAX_TASKS_PER_USER 2048 -> 3192 - /usr/src/linux/include/linux/limits.h: NR_OPEN 1024 -> 32767 - /usr/src/linux/include/net/tcp.h: TCP_TIMEWAIT_LEN (60*HZ) -> (15*HZ)