18.5.10.12 ndbinfo diskpagebuffer 테이블
diskpagebuffer
테이블은 MySQL Cluster 디스크 데이터 테이블에 의한 디스크 페이지 버퍼의 사용 통계를 나타냅니다.
다음 표는 diskpagebuffer
테이블의 컬럼에 대한 정보를 보여줍니다. 이 표에는 각 컬럼의 이름, 데이터 형식 및 간단한 설명을 보여줍니다. 자세한 내용은 표 다음에 나타내는 메모에서 찾을 수 있습니다.
컬럼 이름 | 유형 | 설명 |
---|---|---|
node_id | 정수 | 데이터 노드 ID |
block_instance | 정수 | 블록 인스턴스 |
pages_written | 정수 | 디스크에 기록 된 페이지 수입니다. |
pages_written_lcp | 정수 | 로컬 체크 포인트에 의해 기록 된 페이지 수입니다. |
pages_read | 정수 | 디스크에서 읽은 페이지 수 |
log_waits | 정수 | 로그가 디스크에 기록 될 때까지 대기하고있는 페이지 쓰기 수 |
page_requests_direct_return | 정수 | 버퍼에서 사용 가능했던 페이지에 대한 요청의 수 |
page_requests_wait_queue | 정수 | 페이지가 버퍼에서 사용할 수있을 때까지 기다릴 필요가 있었다 요청 수 |
page_requests_wait_io | 정수 | 디스크의 페이지에서 읽을 필요가 있었다 (버퍼의 페이지를 사용할 수 없었던) 요청의 수 |
이 테이블을 MySQL Cluster 디스크 데이터 테이블과 함께 사용하면 데이터를 디스크가 아닌 버퍼에서 읽을 수있을 정도로 충분히 DiskPageBufferMemory
이 큰지 여부를 확인할 수 있습니다. 디스크 검색을 최소화함으로써 그 테이블의 성능 향상에 도움이 될 수 있습니다.
이러한 쿼리를 사용하면 읽기의 총 수에 대한 DiskPageBufferMemory
에서 읽기의 비율을 확인할 수 있습니다. 이 비율은 백분율로 검색됩니다.
SELECT node_id, 100 * page_requests_direct_return / (page_requests_direct_return + page_requests_wait_io) AS hit_ratio FROM ndbinfo.diskpagebuffer;
이 쿼리의 결과는 클러스터의 데이터 노드 (이 예에서는 클러스터는 4 개의 데이터 노드가 있습니다)마다 1 행에서 다음 것과 같은 것입니다.
+---------+-----------+ | node_id | hit_ratio | +---------+-----------+ | 5 | 97.6744 | | 6 | 97.6879 | | 7 | 98.1776 | | 8 | 98.1343 | +---------+-----------+ 4 rows in set (0.00 sec)
hit_ratio
값이 100 %에 가까워지고있는 것은 버퍼가 아닌 디스크에서 행해지고있는 읽기의 수가 아주 약간 밖에없는 것을 나타냅니다. 즉, 디스크 데이터의 읽기 성능이 최적 수준에 다가 가고 있습니다. 이러한 값 중 하나가 95 % 미만인 경우는 config.ini
파일에서 DiskPageBufferMemory
설정을 크게 할 필요가 있다는 것을 강하게 보여줍니다.
DiskPageBufferMemory
변경 사항이 적용되기 전에 클러스터의 모든 데이터 노드의 롤링 재시작이 필요합니다.