db 접속이 많은 프로그램 작성시 mysql 의 성능의 문제

black0328의 이미지

db 엑세스가 많은 프로그램입니다. 파일 시스템만 제외하고 모든 것을 db 엑세스로 데이타를 가져옵니다.

이런 프로그램을 구현시

  A
        mysql_init(&mysql); /* mysql 초기화 */

        if(!mysql_real_connect (&mysql,NULL,"test","test","testdb",0,(char *)NULL,0))
        {
                printf("mysql_real_connect ==>%s\n",mysql_error(&mysql));
                                exit(0);
        }

  B
       실질적인 query 실행

 C
        mysql_close(&mysql);

방법 1
A B C A B C A B C
하나의 쿼리문을 실행할 때마다 A,C 를 수행 하는 방법

방법 2
A B B B B B B C
A 로 디비를 연결하고 B 의 쿼리문을 계속 실행하다가 더이상 사용 할 필요가 없는 경우 C 로 MYSQL 을 닫는 방법

질문

DB 엑세스가 평균 초당 100번은 일어난다면 어떤 방법으로 프로그램을 구현하는 것이 좋은 방법일련지요....
제 생각에는 "방법 2 " 가 리소스 면에서는 덜 부하가 날 것 같습니다.
그런데 방법 2는 한번 MYSQL 를 실행하고 DB 에 연결하면 그 세션이 닫기전까지는 열려있지 않나요? 그래서 문제가 발생하는 점이 있을 수 있지 않을 까 합니다.

방법 1은 매번 MYSQL 을 초기화 하고 DB 연결하고 닫는 작업이 일어나 프로그램 성능상의 문제점이 있을 것 같은데....

이 두 방법 중에 어떤 방법이 좋은 방법인지 추천해주시고 이유를 말씀해 주시면 감사하겟습니다..

choissi의 이미지

초당 100번씩 일어난다는 가정이라면 당연히 2번이 아닌가요? mysql은 접속을 하면 그때 마다 쓰레드를 생성합니다. 이 부하가 만만치 않지요..

1번 같은 경우도 가끔 고려되는데 프로그램이 여러개가 실행이 되고 쿼리의 빈도가 낮다면 놀고 있는 접속이 많아지게 됩니다. 이럴 때는 1번처럼 구현 하기도 합니다.

1번과 2번 상황을 다 수용하는 방법은 connection poling을 사용하면 가능한데 mysql은 보지 못했습니다. jdbc나 ms의 ADO에서는 지원합니다.

http://www.sql-server-performance.com/bl_asp_ado.asp
http://www.sql-server-performance.com/sk_connection_pooling_myths.asp

위의 내용을 보시면 감이 오실껍니다

울랄라~ 호기심 천국~!!
http://www.ezdoum.com

akbar의 이미지

choissi wrote:

1번과 2번 상황을 다 수용하는 방법은 connection poling을 사용하면 가능한데 mysql은 보지 못했습니다. jdbc나 ms의 ADO에서는 지원합니다.
위의 내용을 보시면 감이 오실껍니다

php 의 mysql_pconnect() 함수의 C 소스를 참고하면
방법이 웬만큼 나와있습니다.

choissi의 이미지

akbar wrote:
choissi wrote:

1번과 2번 상황을 다 수용하는 방법은 connection poling을 사용하면 가능한데 mysql은 보지 못했습니다. jdbc나 ms의 ADO에서는 지원합니다.
위의 내용을 보시면 감이 오실껍니다

php 의 mysql_pconnect() 함수의 C 소스를 참고하면
방법이 웬만큼 나와있습니다.

persistent connection 과 connection pool은 다른 개념입니다.
시스템 전체에서 컨넥션을 pool에 넣고 공유 하는 것이 아니라
하나의 아파치 프로세스 내에서만 연결이 지속되고 사용됩니다.

만약에, 바쁜 웹서버라면 httpd가 백여개 이상씩 실행 될턴데
이렇게 되면 pconnect로 처리하게 되면 백여개의 컨넥션이
생기게 됩니다. 컨넥션 풀로 구현을 하게 되면 프로세스 갯수만큼
생기지는 않습니다.

아파치 2.0의 하이브리드 구조에서 쓰레드를 사용하면 이야기가
달라지는 합니다만,(쓰레드들이 공유를 하기는 함으로.)
그것도 컨넥션 풀의 구현이라고 보기에는 어렵습니다.

하지만, pconnect의 c구현에서 db서버의 호스트정보, userid,
password,port번호등을 키로해서 자원을 관리하는 방법은
컨넥션 풀을 구현하는 방법과 유사한 것은 동의 합니다.

울랄라~ 호기심 천국~!!
http://www.ezdoum.com

akbar의 이미지

choissi wrote:

persistent connection 과 connection pool은 다른 개념입니다.
시스템 전체에서 컨넥션을 pool에 넣고 공유 하는 것이 아니라
하나의 아파치 프로세스 내에서만 연결이 지속되고 사용됩니다.
---
만약에, 바쁜 웹서버라면 httpd가 백여개 이상씩 실행 될턴데
이렇게 되면 pconnect로 처리하게 되면 백여개의 컨넥션이
생기게 됩니다. 컨넥션 풀로 구현을 하게 되면 프로세스 갯수만큼
생기지는 않습니다.

예전에 그냥 Connect 이든 PConnect 이든 오작 하나의 Connect 만 생성시켜서 그 컨넥트를 통해 DB 로 부터 원하는 결과를 얻을 수 없을 까를 생각한 적이 있습니다.
그러자면 Connect 를 가지고 있는 데몬 프로세스를 하나 띄우고
그 프로세스로부터 데이타를 가져오는 그런 방식이 괜찮을 것 같습니다.
그러나 그렇게 되기 까지 처리가 너무 복잡해서 그런 방법도 있을 수 있겠구나
는 정도의 생각으로 그쳤습니다.
어쨋든 PConnect 는 관리자 모드와 같이 부하가 별로 생길 것이 없는 곳에는 장점이 있겠죠

정태영의 이미지

choissi wrote:
1번과 2번 상황을 다 수용하는 방법은 connection poling을 사용하면 가능한데 mysql은 보지 못했습니다. jdbc나 ms의 ADO에서는 지원합니다.

http://www.firstworks.com/

sqlrelay 를 이용하면 가능합니다 :D

오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...

http://mytears.org ~(~_~)~
나 한줄기 바람처럼..

akbar의 이미지

정태영 wrote:

http://www.firstworks.com/
sqlrelay 를 이용하면 가능합니다 :D

좋은 팁이었네요 고맙습니다.

choissi의 이미지

저도 감사합니다. ^^ 비슷한 것을 만들어서 사용을 했었는데, sqlrelay 괜찮네요.

울랄라~ 호기심 천국~!!
http://www.ezdoum.com

jinoos의 이미지

choissi wrote:

1번과 2번 상황을 다 수용하는 방법은 connection poling을 사용하면 가능한데 mysql은 보지 못했습니다. jdbc나 ms의 ADO에서는 지원합니다.

jdbc 같은 connection pooling은 database에서 제공하는것이 아니고
language module단에서 지원하는것입니다. 오라클이라고 오라클자체가
컨넥션 풀을 제공하는것이 아닌것처럼 jdbc, ADO 드라이버가 가지고 있는
기능일 뿐입니다

그리고 윗분예처럼 mysql을 가지고 connection pooling을 제공하는 미들
웨어(?)는 존재 하죠. :D

목적을 찾아서... jiNoos

bh의 이미지

커넥션 풀링, 이 한마디에..
아파치 갈아엎고,, 탐켓을..
80포트 웹서버로 사용을 하고 싶어지네요 ㅡㅡㅋ

--
이 아이디는 이제 쓰이지 않습니다.

kyong의 이미지

black0328 wrote:
db 엑세스가 많은 프로그램입니다. 파일 시스템만 제외하고 모든 것을 db 엑세스로 데이타를 가져옵니다.

이런 프로그램을 구현시

  A
        mysql_init(&mysql); /* mysql 초기화 */

        if(!mysql_real_connect (&mysql,NULL,"test","test","testdb",0,(char *)NULL,0))
        {
                printf("mysql_real_connect ==>%s\n",mysql_error(&mysql));
                                exit(0);
        }

  B
       실질적인 query 실행

 C
        mysql_close(&mysql);

방법 1
A B C A B C A B C
하나의 쿼리문을 실행할 때마다 A,C 를 수행 하는 방법

방법 2
A B B B B B B C
A 로 디비를 연결하고 B 의 쿼리문을 계속 실행하다가 더이상 사용 할 필요가 없는 경우 C 로 MYSQL 을 닫는 방법

질문

DB 엑세스가 평균 초당 100번은 일어난다면 어떤 방법으로 프로그램을 구현하는 것이 좋은 방법일련지요....
제 생각에는 "방법 2 " 가 리소스 면에서는 덜 부하가 날 것 같습니다.
그런데 방법 2는 한번 MYSQL 를 실행하고 DB 에 연결하면 그 세션이 닫기전까지는 열려있지 않나요? 그래서 문제가 발생하는 점이 있을 수 있지 않을 까 합니다.

방법 1은 매번 MYSQL 을 초기화 하고 DB 연결하고 닫는 작업이 일어나 프로그램 성능상의 문제점이 있을 것 같은데....

이 두 방법 중에 어떤 방법이 좋은 방법인지 추천해주시고 이유를 말씀해 주시면 감사하겟습니다..


pconnect 가 나은 방법인 것 같지만 확실히 그런지는 테스트를 해 봐야 알겠지요. 너무 뻔한 얘기인가요:)
동시 접속수가 얼마이고 서버가 얼마를 감당할 수 있는 지가 핵심이 아닐까요.
mysql은 다른 DB와 달리 아주 빠르기 때문에 connection pool과 같은 테크
닉으로 성능을 향상시키기는 어려울 것입니다. 단지 pool이 그러하듯 감당할
만큼 connection을 조절해서(적절한 benchmarking을 통해) 리소스를 관리할 수는 있겠지요.
choissi의 이미지

jinoos wrote:
choissi wrote:

1번과 2번 상황을 다 수용하는 방법은 connection poling을 사용하면 가능한데 mysql은 보지 못했습니다. jdbc나 ms의 ADO에서는 지원합니다.

jdbc 같은 connection pooling은 database에서 제공하는것이 아니고
language module단에서 지원하는것입니다. 오라클이라고 오라클자체가
컨넥션 풀을 제공하는것이 아닌것처럼 jdbc, ADO 드라이버가 가지고 있는
기능일 뿐입니다

그리고 윗분예처럼 mysql을 가지고 connection pooling을 제공하는 미들
웨어(?)는 존재 하죠. :D

저는 db가 connection pooling을 지원한다는 말은 한적이 없습니다.
db접속을 담당하는 모듈 즉 jdbc, ADO같은 녀석들이 지원한고 했을 뿐입니다.

그리고 db가 제공하는 경우도 있습니다.
오라클의 경우를 예를 들어 보면 Shared Server Architecture
가 아닐지요..

"mysql은 보지 못했습니다" 이 말은 질문하신 분의 환경을 고려해서( php)
어느정도 기능이 잘 구현된 형태의 풀매니져를 본적이 없다는 것이지 없다고 단정을 하지는 않았습니다. 다른 댓글을 달아 주신 분이 sqlrelay란 것을 알려주셔서 저도 얻고 가는 기분이 드는 군요.

울랄라~ 호기심 천국~!!
http://www.ezdoum.com

choissi의 이미지

kyong wrote:
가 나은 방법인 것 같지만 확실히 그런지는 테스트를 해 봐야 알겠지요. 너무 뻔한 얘기인가요:)
동시 접속수가 얼마이고 서버가 얼마를 감당할 수 있는 지가 핵심이 아닐까요.
mysql은 다른 DB와 달리 아주 빠르기 때문에 connection pool과 같은 테크
닉으로 성능을 향상시키기는 어려울 것입니다. 단지 pool이 그러하듯 감당할
만큼 connection을 조절해서(적절한 benchmarking을 통해) 리소스를 관리할 수는 있겠지요.

위의 조건이 통하지 않는 상황을 말씀 드리지요.
아파치 1.3.* 기준일때

어느정도 이미지를 포함한 페이지를 로딩하게 되면
인터넷 익스플로러는 2~3개의 컨넥션을 만들어서 keep alive옵션을
(keep alive를 사용하지 않으면 tcp/ip 접속 오버헤드와
소켓 자원이 금방 고갈됩니다. time_wait 대량발생)
사용해 가면서 페이지를 다운로드 받습니다.

그러면 서버 입장에서는 httpd 데몬이 2~3개가 사용되겠지요.
그중에 하나는 php처럼 db연결을 사용할 것입니다.
이때 pconnect를 사용하면 세개의 데몬중에 하나에 연결을 맺을 껍니다.

이런 식으로 유저가 급격히 접근하다보면, 아파치는 이네 200~300개씩이 뜨게 되는데 랜덤하게 httpd 데몬들이 pconnect로 mysql과 접속을 하게 됩니다. 그러면 mysql은 db처리 본연의 입무 보다는 컨넥션 관리, thread 스위칭으로 정신이 없게 됩니다.

그래서 저희가 서비스를 운영 할때는 별도로 db접속을 하지 않는
이미지만 내려주는 이미지 서버를 만들어 그쪽으로 돌려주고
실제 서비스 하는 서버들은 pconnect로해서 꼭 필요한 httpd데몬수만으로
운영을 했습니다.

하지만 connection pool이 지원이 되는 ms환경에서는
이럴 필요가 없죠. 어짜피 풀에서 가져다 쓰니까요..

-------------------------------------

이상은 connect수가 증가해서 생기는 문제일때의 이야기고
db성능에 관한 것은.. 결국 효과적인 쿼리작성이 아닐까 합니다.
(워낙 사용자가 몰리는 곳은 아에 db를 안 쓸 마음을 찍어 내기도 하고요)

울랄라~ 호기심 천국~!!
http://www.ezdoum.com

neogeo의 이미지

mysql 을 nptl enable 로 컴파일 해보시면

접속 마다 process 생성하는 일을 피하실 수 있습니다..

kernel 에서 preemtive 까지 켜야 하는지는 확실치 않군요.

nptl 만 해줘도 다른것 신경안쓰고도 퍼포먼스가 상당히 올라가는 걸로 압니다.

Neogeo - Future is Now.

jinoos의 이미지

choissi wrote:
jinoos wrote:
choissi wrote:

1번과 2번 상황을 다 수용하는 방법은 connection poling을 사용하면 가능한데 mysql은 보지 못했습니다. jdbc나 ms의 ADO에서는 지원합니다.

jdbc 같은 connection pooling은 database에서 제공하는것이 아니고
language module단에서 지원하는것입니다. 오라클이라고 오라클자체가
컨넥션 풀을 제공하는것이 아닌것처럼 jdbc, ADO 드라이버가 가지고 있는
기능일 뿐입니다

그리고 윗분예처럼 mysql을 가지고 connection pooling을 제공하는 미들
웨어(?)는 존재 하죠. :D

저는 db가 connection pooling을 지원한다는 말은 한적이 없습니다.
db접속을 담당하는 모듈 즉 jdbc, ADO같은 녀석들이 지원한고 했을 뿐입니다.

그리고 db가 제공하는 경우도 있습니다.
오라클의 경우를 예를 들어 보면 Shared Server Architecture
가 아닐지요..

"mysql은 보지 못했습니다" 이 말은 질문하신 분의 환경을 고려해서( php)
어느정도 기능이 잘 구현된 형태의 풀매니져를 본적이 없다는 것이지 없다고 단정을 하지는 않았습니다. 다른 댓글을 달아 주신 분이 sqlrelay란 것을 알려주셔서 저도 얻고 가는 기분이 드는 군요.

^^ 쓰레드가 길어져서 글의 의도를 제대로 팍악하지 못했네요..

그런데 오라클 shared server arch 용도가 connection pool과 같은 용도
인가요? 제가 알기로는 분산환경이라고 알고 있는데요. :roll:. 제가 잘 몰고 있나 봅니다.

sqlrelay는 아마도 mysql 때문에 빛을 보지 못하고 있지 않나 하는 느낌이네요.
다른 DB들에서 sqlrelay라면 효율이 꽤 될텐데 말이죠.. ^^;;

목적을 찾아서... jiNoos

kyong의 이미지

choissi wrote:
kyong wrote:
가 나은 방법인 것 같지만 확실히 그런지는 테스트를 해 봐야 알겠지요. 너무 뻔한 얘기인가요:)
동시 접속수가 얼마이고 서버가 얼마를 감당할 수 있는 지가 핵심이 아닐까요.
mysql은 다른 DB와 달리 아주 빠르기 때문에 connection pool과 같은 테크
닉으로 성능을 향상시키기는 어려울 것입니다. 단지 pool이 그러하듯 감당할
만큼 connection을 조절해서(적절한 benchmarking을 통해) 리소스를 관리할 수는 있겠지요.

위의 조건이 통하지 않는 상황을 말씀 드리지요.
아파치 1.3.* 기준일때

어느정도 이미지를 포함한 페이지를 로딩하게 되면
인터넷 익스플로러는 2~3개의 컨넥션을 만들어서 keep alive옵션을
(keep alive를 사용하지 않으면 tcp/ip 접속 오버헤드와
소켓 자원이 금방 고갈됩니다. time_wait 대량발생)
사용해 가면서 페이지를 다운로드 받습니다.

그러면 서버 입장에서는 httpd 데몬이 2~3개가 사용되겠지요.
그중에 하나는 php처럼 db연결을 사용할 것입니다.
이때 pconnect를 사용하면 세개의 데몬중에 하나에 연결을 맺을 껍니다.

이런 식으로 유저가 급격히 접근하다보면, 아파치는 이네 200~300개씩이 뜨게 되는데 랜덤하게 httpd 데몬들이 pconnect로 mysql과 접속을 하게 됩니다. 그러면 mysql은 db처리 본연의 입무 보다는 컨넥션 관리, thread 스위칭으로 정신이 없게 됩니다.

그래서 저희가 서비스를 운영 할때는 별도로 db접속을 하지 않는
이미지만 내려주는 이미지 서버를 만들어 그쪽으로 돌려주고
실제 서비스 하는 서버들은 pconnect로해서 꼭 필요한 httpd데몬수만으로
운영을 했습니다.

하지만 connection pool이 지원이 되는 ms환경에서는
이럴 필요가 없죠. 어짜피 풀에서 가져다 쓰니까요..

-------------------------------------

이상은 connect수가 증가해서 생기는 문제일때의 이야기고
db성능에 관한 것은.. 결국 효과적인 쿼리작성이 아닐까 합니다.
(워낙 사용자가 몰리는 곳은 아에 db를 안 쓸 마음을 찍어 내기도 하고요)


서버가 감당할 수 없는 경우로 사료됩니다.
apache의 idle process가 connection을 갖고 있어서 그렇다는 얘기
같은데요, apache의 max client를 줄이고 mysql의 max connection을
늘이고 wait_timeout을 줄이는 등 내 서버에 맞게 적절히 사용하셔야 할 것
으로 생각됩니다.
그래서 제가 하고 싶은 얘기는 mysql 같은 db에서는 connection pool을 쓰지
않고서 해결할 수 없는 문제는 connection pool을 쓰더라고 해결이 잘 안 될
것이란 말입니다.(jdbc 같은 경우엔 jdbc driver 자체의 overhead를 생각해야
겠지요)
jinoos의 이미지

kyong wrote:
choissi wrote:
kyong wrote:
가 나은 방법인 것 같지만 확실히 그런지는 테스트를 해 봐야 알겠지요. 너무 뻔한 얘기인가요:)
동시 접속수가 얼마이고 서버가 얼마를 감당할 수 있는 지가 핵심이 아닐까요.
mysql은 다른 DB와 달리 아주 빠르기 때문에 connection pool과 같은 테크
닉으로 성능을 향상시키기는 어려울 것입니다. 단지 pool이 그러하듯 감당할
만큼 connection을 조절해서(적절한 benchmarking을 통해) 리소스를 관리할 수는 있겠지요.

위의 조건이 통하지 않는 상황을 말씀 드리지요.
아파치 1.3.* 기준일때

어느정도 이미지를 포함한 페이지를 로딩하게 되면
인터넷 익스플로러는 2~3개의 컨넥션을 만들어서 keep alive옵션을
(keep alive를 사용하지 않으면 tcp/ip 접속 오버헤드와
소켓 자원이 금방 고갈됩니다. time_wait 대량발생)
사용해 가면서 페이지를 다운로드 받습니다.

그러면 서버 입장에서는 httpd 데몬이 2~3개가 사용되겠지요.
그중에 하나는 php처럼 db연결을 사용할 것입니다.
이때 pconnect를 사용하면 세개의 데몬중에 하나에 연결을 맺을 껍니다.

이런 식으로 유저가 급격히 접근하다보면, 아파치는 이네 200~300개씩이 뜨게 되는데 랜덤하게 httpd 데몬들이 pconnect로 mysql과 접속을 하게 됩니다. 그러면 mysql은 db처리 본연의 입무 보다는 컨넥션 관리, thread 스위칭으로 정신이 없게 됩니다.

그래서 저희가 서비스를 운영 할때는 별도로 db접속을 하지 않는
이미지만 내려주는 이미지 서버를 만들어 그쪽으로 돌려주고
실제 서비스 하는 서버들은 pconnect로해서 꼭 필요한 httpd데몬수만으로
운영을 했습니다.

하지만 connection pool이 지원이 되는 ms환경에서는
이럴 필요가 없죠. 어짜피 풀에서 가져다 쓰니까요..

-------------------------------------

이상은 connect수가 증가해서 생기는 문제일때의 이야기고
db성능에 관한 것은.. 결국 효과적인 쿼리작성이 아닐까 합니다.
(워낙 사용자가 몰리는 곳은 아에 db를 안 쓸 마음을 찍어 내기도 하고요)


서버가 감당할 수 없는 경우로 사료됩니다.
apache의 idle process가 connection을 갖고 있어서 그렇다는 얘기
같은데요, apache의 max client를 줄이고 mysql의 max connection을
늘이고 wait_timeout을 줄이는 등 내 서버에 맞게 적절히 사용하셔야 할 것
으로 생각됩니다.
그래서 제가 하고 싶은 얘기는 mysql 같은 db에서는 connection pool을 쓰지
않고서 해결할 수 없는 문제는 connection pool을 쓰더라고 해결이 잘 안 될
것이란 말입니다.(jdbc 같은 경우엔 jdbc driver 자체의 overhead를 생각해야
겠지요)

위처럼 쓰면서 이미지, CSS, JS 파일들은 독립 이미지 서버를 하나 두고
웹서버(이미지 서버가 아닌)에 아얘 KeepAlive 를 off로 해놓고 쓰시면
동접자가 적을때는 반응 속도가 약간 느려지지만 동접자가 많아질 때는
wait_timeout 으로 잃어버리는 효율을 되찾을수 있는데 이것이 꽤 큰
값이더군요..

동접수가 너무 많게 느껴질때 KeepAlive OFF와 pconnect를 적절히 사용
하는것도 괜찮을듯 합니다.

목적을 찾아서... jiNoos

fender의 이미지

풀링을 사용한다는 전제 하에 일반적으로 값비싼 자원을 효율적으로 활용하는 방법은 가능한 늦게 자원을 얻어 오고 가능한 빨리 자원을 풀어 주는 것입니다.

즉, 가능하면 자원을 독점적으로 사용하는 시간을 조금이라도 줄이는게 성능 향상을 위해 좋습니다. 예를들어 (2)의 경우 ABBBBC에서 모든 B가 끝날 때까지 A에서 연 커넥션은 해당 클라이언트 한 명에게만 서비스 될 수 있지만, (1)의 ABCABCABC의 경우 B 사이 사이에도 커넥션을 다른 클라이언트와 공유할 수 있기 때문에 당연히 (2) 번이 훨씬 좋은 성능을 낼 수 있는 모델입니다.

단, 커넥션 풀링이 없을 경우 커넥션을 열고 닫는 자체의 오버헤드가 크기 때문에 의미가 없겠지요...

----------------------------
[서명] 그놈 한국 사용자 모임 - 그놈에 대한 모든 것! - 게시판, IRC, 위키, 갤러리 등등...

choissi의 이미지

jinoos wrote:

위처럼 쓰면서 이미지, CSS, JS 파일들은 독립 이미지 서버를 하나 두고
웹서버(이미지 서버가 아닌)에 아얘 KeepAlive 를 off로 해놓고 쓰시면
동접자가 적을때는 반응 속도가 약간 느려지지만 동접자가 많아질 때는
wait_timeout 으로 잃어버리는 효율을 되찾을수 있는데 이것이 꽤 큰
값이더군요..

동접수가 너무 많게 느껴질때 KeepAlive OFF와 pconnect를 적절히 사용
하는것도 괜찮을듯 합니다.

네... 님 말씀처럼 그런 방식도 괜찮을꺼 같네요.

저의 경우를 또 예를 들어보면,

모의트레이딩 화면을 만들때 frame과 iframe이 많이 사용이 되어서
한번 요청에 php파일을 여러개 불러 옵니다.
그래서 keepalive옵션을 주고 keepalive timeout을 1초로
설정을 해서 빠르게 끊어지게 하는 것이 효율이 좋더군요

----------

울랄라~ 호기심 천국~!!
http://www.ezdoum.com

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.