Amazon Aurora Mysql 5.6의 높은 CPU 및 좀비 스레드
3336 단어 awsrdsauroramysql
Mysql 5.6 (oscar:5.6.mysql_aurora.1.22.2)
. 내가 공유하기에 흥미로웠다고 생각한 것은 좀비 스레드 또는 오랜 시간 동안 실행되고 끝나지 않은 스레드와 죽일 수 없는 스레드였습니다.이들은 일부 집계를 수집하기 위해 여러 개의 임시 테이블을 만든 작은 보고 엔진에 의해 트리거된 간단한 DDL 문이었습니다.

프로세스 목록을 빠르게 살펴보면 아래와 같이 4일 동안 중단된 일부 DDL 문이 있음을 알 수 있습니다.
mysql> show full processlist;
| Id | User | Host | db | Command | Time | State | Info
| 77569519 | app | x.x.x.x:yyyyy | test | Query | 404949 | init | DROP TEMPORARY TABLE IF EXISTS temp1
:::::
동일한 TRX 상태:
mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX where trx_mysql_thread_id = 77569519 \G
*************************** 1. row ***************************
trx_id: 124803462108
trx_state: RUNNING
trx_started: 2022-09-17 21:01:45
trx_requested_lock_id: NULL
trx_wait_started: NULL
trx_weight: 33614
trx_mysql_thread_id: 77569519
trx_query: DROP TEMPORARY TABLE IF EXISTS temp1
trx_operation_state: NULL
trx_tables_in_use: 0
trx_tables_locked: 0
trx_lock_structs: 14
trx_lock_memory_bytes: 376
trx_rows_locked: 0
trx_rows_modified: 33600
trx_concurrency_tickets: 0
trx_isolation_level: READ COMMITTED
trx_unique_checks: 1
trx_foreign_key_checks: 1
trx_last_foreign_key_error: NULL
trx_adaptive_hash_latched: 0
trx_adaptive_hash_timeout: 0
trx_is_read_only: 0
trx_autocommit_non_locking: 0
1 row in set (0.00 sec)
초기 용의자는 이러한 장기 실행 쿼리를 유발하는 디스크 문제였지만 메트릭이 정상으로 보였고 데이터베이스에 임시 테이블을 처리할 수 있는 충분한 로컬 스토리지가 있는 것으로 보였기 때문에 제외되었습니다. 이를 복구하기 위한 다음 시도는 긴 쿼리를 종료하여 CPU 주기를 확보하는 것이었습니다.
mysql> call mysql.rds_kill(77569519);
Query OK, 0 rows affected (0.00 sec)
mysql> call mysql.rds_kill_query(77569519);
Query OK, 0 rows affected (0.00 sec)
쿼리와 연결을 종료하려는 시도에도 불구하고 운이 없습니다.
rds_kill_query
는 아무 것도 변경하지 않았지만 rds_kill
는 명령 상태를 Query
에서 killed
로 변경했습니다. 이들 중 어느 것도 이 경우에 도움이 되지 않았으며 trx_state
는 계속해서 RUNNING
였습니다.mysql> show full processlist;
| Id | User | Host | db | Command | Time | State | Info
| 77569519 | app | x.x.x.x:yyyyy | test | Killed | 422937 | init | DROP TEMPORARY TABLE IF EXISTS temp1
:::::
다음은 AWS Support에 도움을 요청하여 아래 권장 사항을 수집했습니다.
1.x
에서 Amazon Aurora2.x
로 업그레이드합니다. 특히 2.07.8
임시 테이블 주변의 안정성을 위해 커뮤니티 에디션에서 일부 수정 사항이 있습니다. Aurora
2.x
는 호환성 관점에서 Mysql5.7.x
로의 업그레이드를 의미합니다.도움이 되었기를 바랍니다!
Reference
이 문제에 관하여(Amazon Aurora Mysql 5.6의 높은 CPU 및 좀비 스레드), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/aws-builders/high-cpu-and-zombie-threads-on-amazon-aurora-mysql-56-1mbj텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)