CGI는 유닉스 운영체제의 표준 입${\cdot}$출력 환경에서 프로그램의 출력 결과가 고정적인 웹 문서를 대신하도록 고안된 게이트웨이와 웹 서버 사이의 표준 접속 규약이다. 따라서 CGI 게이트웨이에서는 사용된 언어가 제공하는 표준 입${\cdot}$출력 문장을 사용하는 것이 자연스럽다. 그런데 표준 입${\cdot}$출력 메커니즘은 보편적인 환경에 적합하도록 운영체제에 투명하게 설계된 버퍼 전략 중의 하나이다. 이것은 CGI 환경이라는 독특한 특성이 고려될 경우 표준 입${\cdot}$출력 부분이 웹 성능향상을 위한 또 다른 최적화 대상이 될 수 있음을 의미한다. 이 논문에서는 유닉스/리눅스 시스템에서 C 언어로 작성된 CGI 게이트웨이를 위한 출력의 최적화 분야를 표준 출력 방법과 파일 출력 방법으로 분류하고, 각 분야별 제안된 최적화 방안들을 Debian LINUX, IBM AIX, SUN Solaris, Digital UNIX 등 네 운영체제를 대상으로 적용하여 그 영향을 실행시간 위주로 분석하였다. 그 결과 운영체제에 따라 상당한 차이를 보였는데, 기본 방법에 비해 표준 출력 분야에서 $10{\%}$ 이상 향상된 경우가 있었던 반면 성능 향상이 당연시 되었던 파일 출력 방법에서는 오히려 $60{\%}$ 이상 저하되는 최악의 경우가 관찰되었다.
CGI는 유닉스 운영체제의 표준 입${\cdot}$출력 환경에서 프로그램의 출력 결과가 고정적인 웹 문서를 대신하도록 고안된 게이트웨이와 웹 서버 사이의 표준 접속 규약이다. 따라서 CGI 게이트웨이에서는 사용된 언어가 제공하는 표준 입${\cdot}$출력 문장을 사용하는 것이 자연스럽다. 그런데 표준 입${\cdot}$출력 메커니즘은 보편적인 환경에 적합하도록 운영체제에 투명하게 설계된 버퍼 전략 중의 하나이다. 이것은 CGI 환경이라는 독특한 특성이 고려될 경우 표준 입${\cdot}$출력 부분이 웹 성능향상을 위한 또 다른 최적화 대상이 될 수 있음을 의미한다. 이 논문에서는 유닉스/리눅스 시스템에서 C 언어로 작성된 CGI 게이트웨이를 위한 출력의 최적화 분야를 표준 출력 방법과 파일 출력 방법으로 분류하고, 각 분야별 제안된 최적화 방안들을 Debian LINUX, IBM AIX, SUN Solaris, Digital UNIX 등 네 운영체제를 대상으로 적용하여 그 영향을 실행시간 위주로 분석하였다. 그 결과 운영체제에 따라 상당한 차이를 보였는데, 기본 방법에 비해 표준 출력 분야에서 $10{\%}$ 이상 향상된 경우가 있었던 반면 성능 향상이 당연시 되었던 파일 출력 방법에서는 오히려 $60{\%}$ 이상 저하되는 최악의 경우가 관찰되었다.
CGI is a standard interface rule between web server and gateway devised for the gateway's standard output to replace a static web document in UNIX environment. So, it is common to use standard I/O statements provided by the programming language for the CGI gateway. But the standard I/O mechanism is ...
CGI is a standard interface rule between web server and gateway devised for the gateway's standard output to replace a static web document in UNIX environment. So, it is common to use standard I/O statements provided by the programming language for the CGI gateway. But the standard I/O mechanism is one of buffer strategies that are designed transparently to operating system and optimized for generic cases. This means that it nay be useful to apply another optimization to the standard I/O environment in CGI gateway. In this paper, we introduced standard output method and file output method as the two output optimization areas for CGI gateways written in C language in the UNIX/LINUX systems, and applied the proposed methods of each area to Debian LINUX, IBM AIX, SUN Solaris, Digital UNIX respectively. Then we analyzed the effect of them focused on execution time. The results were different from operating system to operating system. Compared to normal situation, the best case of standard output area showed about $10{\%}$ improvement and the worst case showed $60{\%}$ degradation in file output area where some performance improvements were expected.
CGI is a standard interface rule between web server and gateway devised for the gateway's standard output to replace a static web document in UNIX environment. So, it is common to use standard I/O statements provided by the programming language for the CGI gateway. But the standard I/O mechanism is one of buffer strategies that are designed transparently to operating system and optimized for generic cases. This means that it nay be useful to apply another optimization to the standard I/O environment in CGI gateway. In this paper, we introduced standard output method and file output method as the two output optimization areas for CGI gateways written in C language in the UNIX/LINUX systems, and applied the proposed methods of each area to Debian LINUX, IBM AIX, SUN Solaris, Digital UNIX respectively. Then we analyzed the effect of them focused on execution time. The results were different from operating system to operating system. Compared to normal situation, the best case of standard output area showed about $10{\%}$ improvement and the worst case showed $60{\%}$ degradation in file output area where some performance improvements were expected.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
본 논문은, [16-18]이 CGI 게이트웨이의 구조 및 내부 통신 방법 개선에 의한 성능 향상을 도모한 데 비하여, 유 닉스 운영체제마다 독특하게 동작하는 표준 출력 방법을 최적화하여 성능 향상을 얻는 방안에 대하여 논한다.
출력 시스템 호출 대신 주소 참조만으 로 파일 입.출력 효과를 얻는 목적으로 제안되었다. 이 경우 여러 프로세스에 의한 파일 공유가 용이해지는 부수적인 장 점도 얻을 수 있다.
제안 방법
또한 (그림 1)에 보인 상용 웹 서버를 그대로 사용할 경우 CGI 게이트웨이의 정확한 실행 시간 측정이 곤란하므로 아래와 같이 동작하는 웹 서버 스터브를 고안하여 대신 사용하였다.
이 논문에서는 CGI 게이트웨이의 출력 부문을 웹 문서 작성을 위한 표준 출력과 파일 서비스를 위한 파일 출력으 로 분류하여 각 분야별 개선 방안들을 모색하고, 그 방안들 을 Debian LINUX, SUN Solaris, IBM AIX, Digital UNIX 등 네 운영체제에 적용하여 각 운영체제별로 가장 적합한 개선 방안을 제시한다. 이를 위하여 2장에서 관련 연구, 유 닉스의 표준 입.
[18]은 [17]에서 제안한 LGW와 HGW 사이이 통신 수단을 두는 대신에, (그림 3)과 같이 LGW가 웹 서버로부터 상속 받은 표준 입.출력 파일 식별자를 HGW에게 전달하여 HGW로 하여금 해당 파일 식별자들을 직접 접근할 수 있도록 함으로써 웹 서비스 성능을 향상시킨 SendFD 방식 을 제안하였다.
성능/효과
가장 우수한 방법인 ⑤에서 1K 버퍼를 사용할 경우 버 퍼 조작 없이 기본 출력 라이브러리를 그대로 사용하는 경우에 비해 약 4.0% 정도의 성능 향상이 이루어진다.
기본 버퍼 크기인 1K에서, 같은 크기의 버퍼를 setbufO 등을 통해서 명시적으로 설정해 주는 경우(1K')와 그렇지 않고 라이브러리 내부 할당에 맡기는 경우(1K)의 두 성능에서 큰 차이를 보였는데 그 이유는 밝혀지지 않았다. 각각의 방법에 있어서 대체적으로 버퍼 크기의 확장이 성능 향상에 도움이 되는 경향이 있지만 유독 ③~⑥에서는 1K가 가장 적합하고, 시스템 영역의 버퍼가 사용자 영역보다 우수하다.
기본 버퍼 크기인 1K에서, 같은 크기의 버퍼를 setbufO 등을 통해서 명시적으로 설정해 주는 경우(1K')와 그렇지 않고 라이브러리 내부 할당에 맡기는 경우(1K)의 두 성능에서 큰 차이를 보였는데 그 이유는 밝혀지지 않았다. 각각의 방법에 있어서 대체적으로 버퍼 크기의 확장이 성능 향상에 도움이 되는 경향이 있지만 유독 ③~⑥에서는 1K가 가장 적합하고, 시스템 영역의 버퍼가 사용자 영역보다 우수하다.
(:z림 12)에[표 3]에서 분류한 파일 출력 방법 ⑦, ⑧에 따라 파일 크기를 변화시키면서 측정한 각 운영체 제별 성능 결과를 보였다. 이 그림으로부터 Digital UNIX를 제외한 모든 운영체제에서 알려진 사실대로 MMF를 이용한 파일 출력 방법 ⑧이 전통적인 방법 ⑦ 보다 우수하고, 파일 크기가 증가할수록 그 향상 폭은 늘어남을 알 수 있다. 파일 크기가 1M인 경우 Debian LINUX, IBM AIX, SUN Solaris의 성능 이득은 각각 54.
표준 출력 분야에서 시험 대상이었던 모든 운영체제에서 2~10% 정도의 성능 향상을 이루었고, 파일 출력 분야 에서는 어느 운영체제에서도 성능 향상이 기대되었던 MMF에 의한 출력 방법이 오히려 커다란 성능 저하를 초 래하는 운영체제가 있다는 사실을 발견하였다. 특히 SUN Solaris의 MMF는 표준 출력 및 파일 출력 분야에서 상당히 높은 성능 이득 기여도를 보인 것으로 나타났다. 이 논문에서 시도한 다양한 출력 방법 및 시험 방법론은 일선 실무 개발 환경에 사용 중인 운영체제에 그대로 적용 되어 성능 향상에 기여하거나, 또 다른 출력 방법을 고안하기 위한 토대가 될 수 있을 것으로 믿는다.
표준 출력 분야에서 시험 대상이었던 모든 운영체제에서 2~10% 정도의 성능 향상을 이루었고, 파일 출력 분야 에서는 어느 운영체제에서도 성능 향상이 기대되었던 MMF에 의한 출력 방법이 오히려 커다란 성능 저하를 초 래하는 운영체제가 있다는 사실을 발견하였다. 특히 SUN Solaris의 MMF는 표준 출력 및 파일 출력 분야에서 상당히 높은 성능 이득 기여도를 보인 것으로 나타났다.
후속연구
특히 SUN Solaris의 MMF는 표준 출력 및 파일 출력 분야에서 상당히 높은 성능 이득 기여도를 보인 것으로 나타났다. 이 논문에서 시도한 다양한 출력 방법 및 시험 방법론은 일선 실무 개발 환경에 사용 중인 운영체제에 그대로 적용 되어 성능 향상에 기여하거나, 또 다른 출력 방법을 고안하기 위한 토대가 될 수 있을 것으로 믿는다.
참고문헌 (21)
World Wide Web Consortium, 'HTTP-Hypertext Transfer Protocol', http://www.w3.org/protocols/
Robert Orfali, Dan Harkey, Jeri Edwards, 'The Essential Client/Server Survival Guide', 2nd Ed., WILEY, p. 7-22, 1996
World Wide Web Consortium, 'CGI : Common Gateway Interface', http://www.w3.org/hypertext/wwwCGI
H. Braun and K. Claffy, 'Web Traffic Characterization : An Assessment of the Impact of Caching Documents from NCSA's Web Server', Electronic Proceedings of the Second World Wide Web Conference '94 : Mosaic and the Web, Chicago, Ilinois, Oct., 1994
A. Bestavros, R. Carter, M. Crovella, C. Cunha, A. Heddaya and S. Mirdad, 'Application-Level Document Caching in the Internet', Proceedings of the Second International Workshop on Services in Distributed and Networked Environments(SDNE'95), Whistler, BC, Canada, pp.166-173, Jun, 1995
Arun Iyengar, Eric Nahum, Anees Shaikh, Renu Tewari, 'Enhancing Web Performance', IPIP World Computer Congress, Montreal, Canada, Aug., 2002
김수정, 백승구, 김종근, '웹 정보시스템의 서비스 성능향상을위한 부하균형 모델 제안', 정보처리논문지, 제6권 제11호, pp.3179-3189, 1999
Arun Iyengar, Jim Challenger, Daniel Dias, Paul Dantzig, 'High-Performance Web Site Design Techniques', IEEE Internet Computing, 4(2), Mar./Apr., 2000
김성수, 정지영, '웹 서버 클러스터를 위한 효율적인 부하 분배 알고리즘', 정보과학회논문지 : 정보통신, 제28권 제4호, pp.550-558, 2001
James C. Hu, Sumedh Mungee, Douglas C. Schmidt, 'Techniques for Developing and Measuring High Performance Web servers over High Speed Networks', Proceedings of the 2nd Global Internet Conference, Phoenix, AZ, Nov., 1997
Yiming Hu, Ashwini Nanda and Qing Yang, 'Measurement, Analysis and Performance Improvement of the Apache Web Server', Proceedings of the 18th IEEE International Performance, Computing and Communication Conference, Phoenix/Scottsdale, Arizona, Feb., 1999
정진국, 낭종호, 박성용, '다중 처리기 기반 웹 서버 구조의 실험적 분석', 정보과학회논문지 : 정보통신, 제28권 제1호, pp.22-36, 2001
Philippe Joubert, Robert B. King, Rich Neves, Mark Russinovich, John M. Tracey, 'High-Performance Memory-Based Web Servers: Kernel and User-space Performance', Proceedings of the USENIX Annual Technical Conference, Boston, MA, Jun, 2001
Vivek S. Pai, Peter Druschel and Willy Zwaenepoel, 'I/O Lite: A copy-free UNIX I/O system', 3rd UNENIX Symposium on Operating Systems Design and Implementation, New Orlenas, LA, Feb., 1999
Eric Nahum, TsipoSra Barzilai, Dilip Kandlur, 'Performance Issues in WWW Servers', IEEE/ACM Transactions on Networking, 10(2):2-11, Feb., 2002
※ AI-Helper는 부적절한 답변을 할 수 있습니다.