8.11.6.1 스레드 풀 구성 요소 및 설치
스레드 풀 기능은 다음 구성 요소로 구성됩니다.
플러그인 라이브러리 객체 파일에 스레드 풀 코드 용 플러그인과 일부
INFORMATION_SCHEMA
테이블 용 플러그인이 포함되어 있습니다.스레드 풀 방법에 대한 자세한 내용은 섹션 8.11.6.2 "스레드 풀 작업" 을 참조하십시오.
INFORMATION_SCHEMA
테이블에는TP_THREAD_STATE
,TP_THREAD_GROUP_STATE
및TP_THREAD_GROUP_STATS
라는 이름을 붙일 수 있습니다. 이 테이블은 스레드 풀 작업에 대한 정보를 제공합니다. 자세한 내용은 섹션 21.31 "스레드 풀의 INFORMATION_SCHEMA 테이블" 을 참조하십시오.일부 시스템 변수가 스레드 풀에 관련이 있습니다.
thread_handling
시스템 변수는 서버 스레드 풀 플러그인을 성공적으로로드 할 때,loaded-dynamically
값입니다.기타 관련 변수는 스레드 풀 플러그인에 의해 구현됩니다. 그것이 활성화되어 있지 않은 경우, 그들은 사용할 수 없습니다.
thread_pool_algorithm
: 스케줄링에 사용하는 병렬 알고리즘.thread_pool_high_priority_connection
: 세션의 문 실행을 예약하는 방법.thread_pool_prio_kickup_timer
: 스레드 풀이, 실행을 대기하고있는 문을 낮은 우선 순위 큐에서 우선 순위가 높은 큐로 이동하는 시간.thread_pool_max_unused_threads
: 허용 슬립중인 스레드 수.thread_pool_size
: 스레드 풀의 스레드 그룹의 수입니다. 이것은 스레드 풀의 성능을 제어하는 가장 중요한 변수입니다.thread_pool_stall_limit
: 실행중인 문이 정체하는 것으로 간주 될 때까지의 시간.
시작시 플러그인에 의해 구현되는 변수 중 하나가 잘못된 값으로 설정된 경우, 플러그인 초기화가 실패하고 플러그인이로드되지 않습니다.
스레드 풀 매개 변수의 설정 내용은 섹션 8.11.6.3 "스레드 풀 튜닝" 을 참조하십시오.
성능 스키마는 스레드 풀에 대한 정보를 공개하고 작업 성능 조사에 사용할 수 있습니다. 자세한 내용은 제 22 장 「MySQL 성능 스키마 " 를 참조하십시오.
서버가 사용할 수 있도록 스레드 풀 라이브러리 오브젝트 파일은 MySQL 플러그인 디렉토리 ( plugin_dir
시스템 변수에 의해 지정된 디렉토리)에 존재해야합니다. 스레드 풀 기능을 사용하려면 --plugin-load
옵션으로 서버를 시작하면 사용되는 플러그인을로드합니다. 예를 들어, 플러그인 객체 파일 만 지정하면 서버에 포함 된 모든 플러그인 (즉, 스레드 풀 플러그인과 모든 INFORMATION_SCHEMA
테이블)을로드합니다. 이렇게하려면 다음 줄을 my.cnf
파일에 삽입합니다.
[mysqld] plugin-load = thread_pool.so
그것은 개별적으로 스레드 풀 플러그인을 사용하여 그들을 모두로드하는 것과 같습니다.
[mysqld] plugin-load = thread_pool.so plugin-load = thread_pool = thread_pool.so; tp_thread_state = thread_pool.so; tp_thread_group_state = thread_pool.so; tp_thread_group_stats = thread_pool.so
시스템의 객체 파일의 접미사가 .so
과 다를 올바른 접미사로 바꾸십시오 (예를 들어 Windows의 경우 .dll
).
필요에 따라 서버에 플러그인 디렉토리의 위치를 전달하기 위해 plugin_dir
시스템 변수의 값을 설정합니다.
필요한 경우 라이브러리 파일에서 개별 플러그인을로드 할 수 있습니다. 스레드 풀 플러그인을로드하지만, INFORMATION_SCHEMA
테이블은로드하지 않으면 다음과 같은 옵션을 사용합니다.
[mysqld] plugin-load = thread_pool = thread_pool.so
스레드 풀 플러그인과 TP_THREAD_STATE
INFORMATION_SCHEMA
테이블 만로드하려면 다음과 같은 옵션을 사용합니다.
[mysqld] plugin-load = thread_pool = thread_pool.so; TP_THREAD_STATE = thread_pool.so
그러나 모든 INFORMATION_SCHEMA
테이블을로드하지 않으면 일부 또는 모든 MySQL Enterprise Monitor 스레드 풀 그래프가 비어 있습니다.
플러그인의 설치를 확인하려면 INFORMATION_SCHEMA.PLUGINS
테이블을 조사하거나 SHOW PLUGINS
문을 사용합니다. 섹션 5.1.8.2 "서버 플러그인 정보 얻기" 를 참조하십시오.
서버는 스레드 플러그인을 성공적으로로드되면 thread_handling
시스템 변수를 dynamically-loaded
로 설정합니다. 플러그인 로딩에 실패하면 서버 오류 로그에 메시지를 씁니다.