안녕하세요 고수님들께 도움을 받고자 이렇게 글을 올립니다.
이 문제 때문에 주말도 없이 일주일 동안 3-4시간씩 자면서 고생중 입니다.ㅜㅜ
1. 환경
1) 개발환경 C++
2) 사용환경 MySQL, 윈도우서버 2008, 동시접속 클라이언트 200개
2. 오류내용(질문)
1) - 200개 Client중 20-30개의 Client에서 Blob이 있는 테이블을 select 하면 Lost connection to MySQL server during query 오류가 나옵니다.
- 하나의 레코드에 blob 파일은 대략 1~3Mbyte 정도 입니다.
- 기존에는 10개의 클라이언트가 Blob이 있는 테이블을 Select 쿼리를 보내면 이런 증상이 나타나지 않았지만 지난주 부터 갑자기
2~3의 클라이언트가 Select 쿼리를보내면 Lost connection to MySQL server during query 오류가 나옵니다.
그래서 MY.ini를 수정해 보았지만 증상을 동일하게 계속 나타납니다. 아래에 my.ini 세팅값 첨부 합니다.
my.ini를 수정해도 답이 안나오면 소스를 수정해야 할까요?
2) MYSQL API Statement클래스를 사용해서 쿼리문을 보낼때 ex) pResult = stmt->executeQuery(query.str()); 이렇게 보내는데요.
Lost connection to MySQL server during query 상황이 되면 힙이 손상되었다고 프로그램이 죽어 버립니다. 해결 할 수 있는 방법이 있을까요.
작은 조언이라도 좋으니 도움 부탁드립니다.
===my.ini 세팅값===
[mysqld]
character-set-server=euckr
default-storage-engine=INNODB
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
max_connections=1500
#query_cache_size=18M
table_cache=9000
tmp_table_size=17M
thread_cache_size=34
myisam_max_sort_file_size=100G
myisam_sort_buffer_size=34M
key_buffer_size=500M
read_buffer_size=64K
read_rnd_buffer_size=256K
sort_buffer_size=208K
#*** INNODB Specific options ***
innodb_data_home_dir="D:/MySQL Datafiles/"
innodb_additional_mem_pool_size=64M
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=8M
innodb_buffer_pool_size=1024M
innodb_log_file_size=10M
innodb_thread_concurrency=18
innodb_file_per_table
innodb_lock_wait_timeout=50
query_cache_type=0
enable-named-pipe
socket=mysql
max_allowed_packet=1000M
skip-name-resolve
|