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