엄청난 초당쿼리네요.
미들웨어 없이 단순히 DB서버와 웹서버간의 통신이라면
back_log = 1024
wait_timeout = 10
thread_cache_size = 48
read_rnd_buffer_size = 2093056 ## 1MB 나 2MB 정도
일차적으로 이정도 선에서 튜닝하고, 튜닝 결과가 이전과
동일하면
H/W 적인 튜닝 및 구조적인 변경(replication) 을 해야합니다.
그래도 엄청난 초당쿼리에 잘 버티는것 같습니다.
[지에스]님이 남기신 글:
>급하게 질문드립니다.
>
>현 사이트는 데이터 처리(데이터 수신 송신 리프레쉬를 통한
실시간 정보 제공)가 주목적인 서버이며, 얼마전부터 갑작스레
서버에 부하가 생겨 여기저기 정보를 찾아보다 마지막
지푸라기라도 잡는 심정으로 글을 올립니다.
>
>염치없지만 자세한 답변 부탁드리겠습니다.
>
>
>
>
>
>> collapse;table-layout:fixed;width:660pt'>
> > width:122pt'>
> > width:116pt'>
> > width:422pt'>
>
> 항목 |
> STATUS |
> commnets,
[***]
> 표시는 성능 향상과 관련됨 |
>
>
> > width:122pt'>TOTAL_STATUS |
> 9475.72 |
> hot
> busy (1초당 평균 쿼리 요청수) |
>
>
> > width:122pt'>CRITICAL_LIFE_TIME |
> 6초 |
> 커넥션당
> 평균적인(추세)
임계 life time(CUR) |
>
>
> > width:122pt'>CRITICAL_LIFE_TIME_MAX |
> 6초 |
> 커넥션당
> 평균적인(최대)
임계 life time(EXP) |
>
>
> > width:122pt'>All_databases |
> 118 or
more |
> 데이터베이스
> 수 |
>
>
> > width:122pt'>Aborted_clients |
> 110 |
> 연결
> 취소 Clients 수, refer 28,800(8시간 0초)[wait_timeout] and
28,800(8시간
> 0초)[interactive_timeout] |
>
>
> > width:122pt'>Aborted_connects |
> 6 |
> 연결
> 실패수, refer 5(5초)[connect_timeout] |
>
>
> > width:122pt'>Aborted_clients_percent |
> 0.01% |
> > href="http://linuxchannel.net/docs/mysql-timeout.txt"
target="_blank">연결
취소율, 정상[참고] |
>
>
> > width:122pt'>Aborted_connects_percent |
> 0.00% |
> 연결
> 실패율, 정상 |
>
>
> > width:122pt'>Bytes_received |
> 1.3 GB |
> 수신량(총) |
>
>
> > width:122pt'>Bytes_sent |
> 3.0 GB |
> 전송량(총) |
>
>
> > width:122pt'>Bytes_per_rs |
> 2.26 |
> 받고(1)
> 보내는(x) 비율, 1:x |
>
>
> > width:122pt'>Bytes_sent_per_sec |
> 93 KB |
> 전송량(초당) |
>
>
> > width:122pt'>Bytes_sent_per_min |
> 5 MB |
> 전송량(분당) |
>
>
> > width:122pt'>Bytes_sent_per_hour |
> 328 MB |
> 전송량(시간당) |
>
>
> > width:122pt'>Bytes_sent_per_day |
> 7.7 GB |
> 전송량(하루평균)> class="font10">, 예상수치 |
>
>
> > width:122pt'>Com_delete |
> 0.00% |
> DELETE
> 쿼리 사용율(전체 DB 통계) |
>
>
> > width:122pt'>Com_insert |
> > x:num="1.8100000000000002E-2">1.81% |
> INSERT
> 쿼리 사용율(전체 DB 통계) |
>
>
> > width:122pt'>Com_select |
> 0.63% |
> SELECT
> 쿼리 사용율(전체 DB 통계) |
>
>
> > width:122pt'>Com_update |
> 1.66% |
> UPDATE
> 쿼리 사용율(전체 DB 통계) |
>
>
> > width:122pt'>Com_replace |
> 0.00% |
> REPLACE
> 쿼리 사용율(전체 DB 통계) |
>
>
> > width:122pt'>Com_lock_tables |
> 0.00% |
> LOCK
> TABLES 쿼리 사용율(전체 DB 통계) |
>
>
> > width:122pt'>Connections |
> 1,626,718 |
> 총
> connections 수 |
>
>
> > width:122pt'>Connections_per_sec |
> 47.69 |
> 초당
> connections 수 |
>
>
> > width:122pt'>Created_tmp_tables |
> 753 |
> 메모리에
> 생성된 임시 테이블 수 |
>
>
> > width:122pt'>Created_tmp_disk_tables |
> 0 |
> DISK에
> 생성된 임시 테이블 수, 33,554,432(32 MB)[tmp_table_size]보다
많은 메모리를 요구하는 SQL 구문을 실행시
> 누계됨 |
>
>
> > width:122pt'>Create_tmp_disk_tables_per |
> 0.00% |
> DISK에
> 생성된 임시 테이블 사용 비율 |
>
>
> > width:122pt'>Created_tmp_files |
> 3 |
> mysqld
> 가 생성한 임시 파일 수 |
>
>
> > width:122pt'>Delayed_writes |
> 0 |
> INSERT
> DELAYED 구문으로 기록된 rows 수 |
>
>
> > width:122pt'>Delayed_errors |
> 0 |
> INSERT
> DELAYED 구문으로 기록시 에러(duplicate key 포함)난 rows 수(없어야
작아야 정상) |
>
>
> > width:122pt'>Delayed_errors_per |
> 0.00% |
> INSERT
> DELAYED 에러 비율(0이거나 작아야 정상) |
>
>
> > width:122pt'>Intervals_of_connection |
> > x:num="2.1000000000000001E-2">0.021 |
> 커넥션
> 주기(초) |
>
>
> > width:122pt'>Intervals_of_question |
> 0 |
> 쿼리
> 주기(초) |
>
>
> > width:122pt'>Key_reads |
> 5,713,654 |
> DISK에서
> Key 읽은 수 |
>
>
> > width:122pt'>Key_read_requests |
> 28,040,061 |
> 캐시에서
> Key 읽기 요청수 |
>
>
> > width:122pt'>Key_writes |
> 444,927 |
> DISK에
> Key를 쓴 수 |
>
>
> > width:122pt'>Key_write_requests |
> 535,491 |
> 캐시에
> Key 쓰기 요청수 |
>
>
> > none;width:122pt'>Key_reads_per_request |
> 0.20% |
> DISK에서
> Key를 읽는 비율, |
>
>
> > border-left:none;width:422pt'>DISK에서
Key를 읽는 요청이 많습니다(기준 0.05%).
> 536,870,912(512 MB)(key_buffer_size)값을
올리세요. |
>
>
> > width:122pt'>Key_writes_per_request |
> > x:num="8.3000000000000001E-3">0.83% |
> DISK에
> Key를 쓰는 비율, 보통 1에 가까워야 정상 |
>
>
> > width:122pt'>Max_used_connections |
> 454 |
> 동시에
> 연결된 최대값, 정상 |
>
>
> > width:122pt'>Open_tables |
> 513 |
> 현재
> 열려있는 Tables 수 |
>
>
> > none;width:122pt'>Opened_tables |
> 3,745,162 |
> 열렸던
> Tables 수, refer 512[table_cache], |
>
>
> > border-left:none;width:422pt'>512[table_cache]값을
1000 정도로 올리세요. |
>
>
> > width:122pt'>Qcache_queries_in_cache |
> 8,874 |
> query
> cache: 등록된 쿼리 수 |
>
>
> > width:122pt'>Qcache_inserts |
> 1,888,392 |
> query
> cache: 추가된 쿼리 수 |
>
>
> > width:122pt'>Qcache_hits |
> 155,147,067 |
> query
> cache: hit 수 |
>
>
> > width:122pt'>Qcache_lowmem_prunes |
> 927,774 |
> query
> cache: 작은 메모리(refer 33,554,432(32 MB)[query_cache_size]) 때문에
지워진 쿼리 수, 이 값이
> 작아야 정상 |
>
>
> > width:122pt'>Qcache_not_cached |
> 81,004 |
> query
> cache: non-cached 쿼리 수, not cachable, refer
[query_cache_type] |
>
>
> > width:122pt'>Qcache_free_memory |
> 12,675,784(12
MB) |
> query
> cache: 남아 있는 query cache 메모리 양, refer 33,554,432(32
MB)[query_cache_size] |
>
>
> > width:122pt'>Qcache_free_blocks |
> 4,292 |
> query
> cache: 남아 있는 query cache blocks 수 |
>
>
> > width:122pt'>Qcache_total_blocks |
> 25,898 |
> query
> cache: 총 query cache blocks 수 |
>
>
> > width:122pt'>Questions |
> 323,245,198 |
> 현재까지
> 쿼리 요청수 |
>
>
> > width:122pt'>Questions_per_connect |
> 198.71 |
> 커넥션당
> 평균 쿼리 요청수 |
>
>
> > width:122pt'>Select_full_join |
> 0 |
> Key
> 없이 FULL-JOIN 횟수 |
>
>
> > width:122pt'>Slow_queries |
> 66 |
> 10(10초)[long_query_time]초
> 보다 큰 쿼리 요청수 |
>
>
> > width:122pt'>Table_locks_waited |
> 20시간
41분 13초 |
> Lock
> wait 총시간 |
>
>
> > width:122pt'>Threads_cached |
> 6 |
> 캐시된
> 쓰레드수, 8[thread_cache_size]보다
항상 작음 |
>
>
> > width:122pt'>Threads_connected |
> 8 |
> 현재
> 열려있는 커넥션 수 |
>
>
> > width:122pt'>Threads_created |
> 139,994 |
> 현재까지
> handle 커넥션에 생성된 쓰레드 수 |
>
>
> > width:122pt'>Threads_running |
> 2 |
> 현재
> 구동중인 쓰레드 수(not sleeping) |
>
>
> > none;width:122pt'>Threads_created_per |
> 0.09% |
> 커넥션당
> 생성된 평균 쓰레드 수(기준 0.01%), |
>
>
> > border-left:none;width:422pt'>> href="http://linuxchannel.net/board/read.php?table=alpha&no=27"
> target="_blank">8[thread_cache_size]값을
> 올리세요.[참고] |
>
>
> > width:122pt'>Uptime |
> 9시간
28분 33초 |
> 최근
> MySQL 서버 구동 시간 |
>
>
> |
> |
> |
>
>
> |
> |
> |
>
>
> > width:122pt'>항목 |
> VARIABLES |
> commnets,
> [***] 표시는 성능 향상과 관련됨 |
>
>
> > width:122pt'>back_log |
> 50 |
> listen(2),
> net.ipv4.tcp_max_syn_backlog |
>
>
> > width:122pt'>connect_timeout |
> 5(5초) |
> bad
> handshake timeout(초), 정상 |
>
>
> > width:122pt'>have_query_cache |
> YES |
> query
> cache 지원 여부 |
>
>
> > width:122pt'>query_cache_size |
> 33,554,432(32
MB) |
> query
> cache 크기 설정, 0은 OFF(현재:ON) refer
[Qcache_xxx] |
>
>
> > width:122pt'>join_buffer_size |
> 131,072(128
KB) |
> [***]
> FULL-JOIN에 사용되는 메모리 |
>
>
> > none;width:122pt'>key_buffer_size |
> 536,870,912(512
MB) |
> [***]
> INDEX key buffer에 사용되는 메모리, refer [Key_xxx], |
>
>
> > border-left:none;width:422pt'>DISK에서
Key를 읽는 요청이 많습니다(기준 0.05%).
> 536,870,912(512 MB)(key_buffer_size)값을
올리세요. |
>
>
> > width:122pt'>log |
> OFF |
> 로그
> 기록 여부 |
>
>
> > width:122pt'>log_update |
> OFF |
> UPDATE
> 로그 기록 여부 |
>
>
> > width:122pt'>log_bin |
> OFF |
> binary
> 로그 기록 여부 |
>
>
> > width:122pt'>long_query_time |
> 10(10초) |
> refer
> 66[Slow_queries] |
>
>
> > width:122pt'>lower_case_table_names |
> 0 |
> 테이블
> 대소문자 구별유무(0 구별) |
>
>
> > width:122pt'>max_allowed_packet |
> 1,047,552(1,023
KB) |
> 최대
> 허용할 패킷 |
>
>
> > width:122pt'>max_connections |
> 500 |
> [***]
> 최대 동시 접속 커넥션 수, refer 454[Max_used_connections], 정상 |
>
>
> > width:122pt'>max_delayed_threads |
> 20 |
> 최대
> delayed 쓰레드 수, INSERT DELAYED 구문과 관련됨 |
>
>
> > width:122pt'>max_join_size |
> 4,294,967,295(4.0
GB) |
> JOIN에
> 사용될 최대 크기(메모리 아님) |
>
>
> > width:122pt'>max_sort_length |
> 1,024(1
KB) |
> TEXT,
> BLOB의 정렬에 사용되는 최대 크기 |
>
>
> > width:122pt'>max_user_connections |
> 0 |
> 최대
> 동시 user 수(0은 제한없음) |
>
>
> > width:122pt'>myisam_max_extra_sort_file_size |
> 268,435,456(256
MB) |
> 빠른
> INDEX를 생성시 사용되는 최대 임시 파일 크기 |
>
>
> > width:122pt'>myisam_max_sort_file_size |
> 2,147,483,647(2.0
GB) |
> REPAIR,
> ALTER, LOAD...등 INDEX를 재생성시 사용되는 임시 파일
크기 |
>
>
> > width:122pt'>myisam_sort_buffer_size |
> 67,108,864(64
MB) |
> [***]
> REPAIR, INDEX, ALTER 정렬에 사용하는 메모리 |
>
>
> > width:122pt'>open_files_limit |
> 8,192 |
> 파일
> open 제한 수(0은 제한없음) |
>
>
> > width:122pt'>read_buffer_size |
> 2,093,056(2
MB) |
> [***]
> 순차적인 검색에 사용되는 메모리(read_buffer_size) |
>
>
> > width:122pt'>read_rnd_buffer_size |
> 262,144(256
KB) |
> [***]
> ORDER BY 정렬에 사용되는 메모리(to avoid a disk seeks) |
>
>
> > width:122pt'>safe_show_database |
> NA |
> 제한적인
> SHOW DATABASE 구문 사용 여부, 4.0.xx 에서는 작동은 하지만 이
항목은 출력되지 않습니다. |
>
>
> > width:122pt'>skip_external_locking |
> ON |
> 외부
> lock 을 사용한다면 OFF로 설정. |
>
>
> > none;width:122pt'>skip_networking |
> OFF |
> TCP/IP
> 연결 여부(ON은 UNIX domain socket, OFF는 TCP/IP 연결), |
>
>
> > border-left:none;width:422pt'>현재
UNIX domain socket(:/tmp/mysql.sock)을
사용하고
> 있습니다. 독립된 다른 호스트에서 연결하는 경우가 없다면
이 옵션을 ON으로 설정하세요 |
>
>
> > width:122pt'>skip_show_database |
> OFF |
> SHOW
> DATABASES 구문 사용 여부(ON은 원천봉쇄, OFF는
사용가능) |
>
>
> > width:122pt'>sort_buffer_size |
> 2,097,144(2
MB) |
> [***]
> ORDER BY, GROUP BY 정렬에 사용되는 메모리 |
>
>
> > width:122pt'>table_cache |
> 512 |
> [***]
> 한번에(all thread) 열 수 있는 테이블 수, refer
3,745,162[Opened_tables] |
>
>
> > none;width:122pt'>thread_cache_size |
> 8 |
> [***]
> 쓰레드 캐시 재사용 수, refer 1,626,718[Connections],
139,994[Threads_created], 계산된
> 추정값(최소:48,
권장:97, 최대:146), |
>
>
> > border-left:none;width:422pt'>> href="http://linuxchannel.net/board/read.php?table=alpha&no=27"
> target="_blank">8[thread_cache_size]값을
> 올리세요.[참고] |
>
>
> > width:122pt'>tmp_table_size |
> 33,554,432(32
MB) |
> [***]
> 복잡한 GROUP BY 정렬에 사용되는 메모리(to avoid a disk seeks),
refer
> 0[Created_tmp_disk_tables] |
>
>
> > width:122pt'>interactive_timeout |
> 28,800(8시간
0초) |
> > href="http://linuxchannel.net/docs/mysql-timeout.txt"
target="_blank">interactive -> re-active에 기다리는 시간(이후
closed),
> 정상[참고] |
>
>
> > width:122pt'>wait_timeout |
> 28,800(8시간
0초) |
> > href="http://linuxchannel.net/docs/mysql-timeout.txt"
target="_blank">none interactive -> re-active에 기다리는
시간(이후
> closed), 계산된 추정값(추세:6초,
임계:6초), 정상[참고] |
>
>
> > width:122pt'>timezone |
> KST |
> 현재
> MySQL 서버의 TIME-ZONE |
>
>
> > width:122pt'>version |
> 4.0.27 |
> 현재
> MySQL 서버 버전 |
>
>
>
> |
> |
> |
>
>
>
>
>
========================================
|