MySQL 탭
- 주제:
- 구성
작성 대상:
- 경험
- 관리자
- 개발자
MySQL% free storage by node
노드별
MySQL에 할당된 저장소(datadir
MySQL 구성 설정, 기본값: /data/mysql
)에서 MySQL의 저장소 부족 또는 tmpdir
의 공간 부족으로 인해 많은 문제가 발생합니다. 기본 tmpdir
(MySQL 설정)은 /tmp
입니다. MySQL% free storage by node 프레임은 /, /tmp
(별도의 마운트로 정의된 경우)과 /data/mysql
사용 가능한 저장소 비율을 봅니다. MySQL 버전 5.7(MariaDB 버전 10.2)부터 압축되지 않은 tmp
테이블이 파일의 /data/mysql
디렉터리에 있는 tmp
테이블스페이스에 기록됩니다(ibtmp1). 이 파일은 기본적으로 제한 없이 자동으로 확장됩니다. 테이블스페이스이므로 크기가 줄어들지 않고 MySQL이 다시 시작될 때 12MB로 재설정됩니다.
MySQL Connections by Node
MySQL Connections by Node 프레임은 데이터베이스 노드 중단 또는 대량 연결 기간을 나타냅니다.
MySQL Node Summary
MySQL Node Summary 테이블은 소프트웨어 버전 및 인스턴스 유형(크기)과 같은 데이터베이스 노드 세부 정보를 보여 줍니다.
Galera Number of Nodes in cluster
Galera Number of Nodes in cluster 프레임에 MySQL 로그의 정보가 표시됩니다. 노드가 클러스터에 참여하고 나갈 때 선택한 기간에 대한 메시지만 표시됩니다. 노드가 일정 기간 전에 클러스터를 떠나면 해당 기간 동안 메시지가 존재하지 않습니다. 데이터베이스에 노드가 부족할 수 있다고 의심되는 경우 시간대를 더 긴 기간으로 확장하여 추가 정보를 볼 수 있는지 확인합니다. Galera 클러스터에 있는 모든 노드보다 적음을 나타내는 정보가 있는 경우, 시간 프레임을 확장하여 노드가 클러스터를 떠난 시기를 확인할 수 있는지 확인하십시오.
MySQL shutdowns and starts
MySQL shutdowns and starts 프레임은 노드가 종료되는 시점을 감지합니다. Galera 노드가 제거되고 Galera 노드에서 자동 제거됩니다. 이렇게 하면 일반적으로 MySQL 서비스가 다시 시작됩니다.
Galera log
Galera log 프레임에는 Galera 노드, 해당 상태 및 Galera 클러스터의 상태 변경에 대한 MySQL 로그의 특정 신호 수가 표시됩니다.
- '%1047 WSREP에서 아직 'node_not_prep_for_use'(응용 프로그램 사용%')에 대한 노드를 준비하지 않았습니다.
- '%[ERROR] WSREP: wsrep_sst_xtrabackup-v2%'에서 'xtrabackup_read_fail'로 읽지 못했습니다.
- '%[ERROR] WSREP: 'xtrabackup_compl_w_err'로 표시되는 동안 오류가 발생하여 프로세스가 완료되었습니다. wsrep_sst_xtrabackup-v2 %'
- '%[ERROR] WSREP: rbr 쓰기 실패%')를 'rbr_write_fail'로 함
- '%self-leave%')을(를) 'susp_node'로 설정
- '%members = 3/3 (joined/total)%') as'3of3'
- '%members = 2/3 (joined/total)%') as'2of3'
- '%members = 2/2%')을(를) '2of2'(으)로 설정
- '%members = 1/2%')을(를) '1of2'(으)로 설정
- '%members = 1/3%')을(를) '1of3'으로 설정
- '%members = 1/1%')을(를) '1of1'(으)로 설정
- '%[참고] /usr/sbin/mysqld(mysqld 10.%')를 'sql_restart'로
- '%Quorum: 완료 상태:%'인 노드가 없음) 'no_node_count'
- '%WSREP: 멤버 0%')이 'mem_0'이 되었습니다.
- '%WSREP: 멤버 1.0%')이 'mem_1'인 경우
- '%WSREP: 멤버 2%') as'mem2'
- '%WSREP: 그룹과 동기화됨, 연결 준비%')이 '준비'입니다.
- '%/usr/sbin/mysqld, 버전:%')을 'mysql_restart_mysql.slow'로 설정합니다.
- '%[참고] WSREP: 새 클러스터 보기: 전역 상태:%') as 'galera_cluster_view_chng'
Galera Log by Host
호스트별
Galera Log by Host 프레임은 Galera log 프레임과 동일하지만, 노드별로 분류되어 문제 해결에 도움이 됩니다.
Database performance
Database performance 프레임은 특정 요청 동안의 데이터베이스 성능을 보여 줍니다. 그래프 아래의 색상이 지정된 아이콘에서 각 지표를 클릭하여 볼 수 있습니다. New Relic으로 MySQL 데이터베이스 성능 모니터링에서 호출된 많은 지표를 이 프레임에서 찾을 수 있습니다.
- average(query.queriesPerSecond)
- average(query.slowQueriesPerSecond)
- average(db.createdTmpDiskTablesPerSecond)
- average(db.createdTmpFilesPerSecond)
- average(db.tablesLocksWaitedPerSecond)
- average(db.innodb.rowLockTimeAvg)
- average(db.innodb.rowLockWaitsPerSecond)
Transaction Database Call Count
Transaction Database Call Count 프레임에는 각 트랜잭션 패싯에서 수행한 데이터베이스 호출 수가 표시됩니다. 이는 진술이 아닌 행 중심적인 것으로 보인다.
Cron_schedule table updates
Cron_schedule table updates 프레임에는 선택한 기간 동안 cron_schedule 테이블에 대한 데이터베이스 업데이트의 최대 기간이 표시됩니다.
Slow Query Traces
Slow Query Traces 프레임에는 느린 쿼리 추적이 있는 테이블 및 요청 유형이 표시됩니다. 5초 이상 걸리는 쿼리 트랜잭션에 대해 느린 쿼리 추적이 만들어집니다. 업데이트 쿼리는 이 프레임에서 가장 중요합니다. UPDATE
, DELETE
및 INSERT
문이 테이블을 업데이트하는 경우 일정 기간 동안 테이블을 잠글 수 있습니다.
FOR UPDATE와 함께 사용할 경우 SELECT
문도 행을 잠글 수 있습니다.
Datastore Operations tables
Cron table change
Cron table change 프레임은 특정 PHP 메모리 오류 및 cron_schedule
테이블과 관련된 잠금과 함께 "cron 작업에 대한 잠금을 가져올 수 없습니다:" 오류 메시지를 찾습니다. cron_schedule
테이블이 잠기면(예: DELETE
쿼리가 실행되고 있음) 다른 cron이 실행되지 않습니다.
Deadlocks
Deadlocks 프레임은 MySQL 로그에서 구문 분석된 다음 문자열을 봅니다.
- '%PHP 심각한 오류: 허용되는 메모리 크기(%')를 php_mem_error로 표시
- '%get lock; 트랜잭션을 다시 시작해 보십시오. 쿼리: DELETE 출처: `cron_schedule%') as cron_sched_lock_del
- '% lock for cron job: indexer_reindex_all_invalid%') as 'lock_indexer_reindex_all_invalid%'
- '% cron job에 대한 잠금: cron_schedule%')을 'lock_cron_schedule'로
- '% lock for cron job:%') as 'total_cron_lock'
- '%일반 오류: 1205 잠금 대기 시간 제한 초과%')를 'sql_1205_lock'으로 설정합니다.
- '%ERROR 1213 (40001): lock%'을(를) 'sql_1213_lock'으로 가져오는 동안 교착 상태가 발견되었습니다.
- '%SQLSTATE[40001]: 직렬화 실패: 1213 교착 상태가 발견되었습니다%')을(를) 'sql_1213_lock2'(으)로 설정했습니다.
- '% lock for cron job: indexer_update_all_views%') as 'lock_indexer_update_all_views'
- '% lock for cron job: sales_grid_order_invoice_async_insert%') as 'lock_sales_grid_order_invoice_async_insert',
- '% cron 작업에 대한 잠금: staging_remove_updates%')이 'lock_staging_remove_updates'로 표시됨
- '% lock for cron job: sales_grid_order_shipment_async_insert%') as 'lock_sales_grid_order_shipment_async_insert'
- '% cron job에 대한 잠금: amazon_payments_process_queued_reffers%') as 'lock_amazon_payments_process_queued_reffers'
- '% cron job에 대한 잠금: sales_send_order_shipment_emails%') as 'lock_sales_send_order_shipment_emails'
- '% cron 작업에 대한 잠금: staging_synchronize_entities_period%')이 'lock_staging_synchronize_entities_period'입니다.
- '% lock for cron job: indexer_clean_all_changelogs%') as 'lock_indexer_clean_all_changelogs'
- '% cron job에 대한 잠금: magento_targetrule_index_reindex%')이 'lock_magento_targetrule_index_reindex'인 경우
- '% cron 작업 잠금: newsletter_send_all%') as 'lock_newsletter_send_all'
- '% cron 작업 잠금: newsletter_send_all%') as 'lock_newsletter_send_all'
- '% cron job에 대한 잠금: sales_send_order_emails%') as 'lock_sales_send_order_emails'
- '% cron job에 대한 잠금: sales_send_order_creditmemo_emails%') as 'lock_sales_send_order_creditmemo_emails'
- '% lock for cron job: sales_grid_order_creditmemo_async_insert%') as 'lock_sales_grid_order_creditmemo_async_insert'
- '% cron job: bulk_cleanup%')을 'lock_bulk_cleanup'으로 설정
- '% cron job: flush_preview_quotas%') "lock_flush_preview_quotas"(cron job: flush_preview_quotas)"
- '% cron job에 대한 잠금: sales_send_order_invoice_emails%') as 'lock_sales_send_order_invoice_emails'
- '% cron job에 대한 잠금: sales_send_order_invoice_emails%') as 'lock_sales_send_order_invoice_emails'
- '% cron 작업 잠금: captcha_delete_expired_images%') as 'lock_captcha_delete_expired_images'
- '% cron job: magento_newrelicreporting_cron%') as 'lock_magento_newrelicreporting_cron'
- '% cron job에 대한 잠금: oldecated_authentication_failures_cleanup%')을 'lock_oldecated_authentication_failures_cleanup'으로 설정
- '% cron job: send_notification%')을 'lock_send_notification'으로 설정
- '% cron job에 대한 잠금: magento_giftcardaccount_generage_codes_pool%')을 'lock_magento_giftcardaccount_generage_codes_pool'로
- '% cron job: catalog_product_frontend_actions_flush%')을 'lock_catalog_product_frontend_actions_flush'로 잠금
- '% cron 작업 잠금: mysqlmq_clean_messages%')을 'mysqlmq_clean_messages'로 표시
- '% cron 작업에 대한 잠금: catalog_product_attribute_value_synchronize%')을(를) 'lock_catalog_product_attribute_value_synchronize'(으)로
- '% lock for cron job: ddg_automation_importer%') as 'lock_ddg_automation_importer'
- '% lock for cron job: ddg_automation_reviews_and_wishlist%') as 'lock_ddg_automation_reviews_and_wishlist'
- '% cron 작업 잠금: captcha_delete_old_attempts%') as 'lock_captcha_delete_old_attempts'
- '% cron job에 대한 잠금: catalog_product_old_price_values_cleanup%')을 'lock_catalog_product_old_price_values_cleanup'으로 표시
- '% cron 작업에 대한 잠금: consumer_runner%')을 'lock_consumer_runner'로 표시
- '% cron 작업 잠금: ddg_automation_customer_subscriber_guest_sync%') as 'lock_ddg_automation_customer_subscriber_guest_sync'
- '% cron 작업 잠금: get_amazon_capture_updates%') as 'lock_get_amazon_capture_updates'
- '% cron 작업 잠금: get_amazon_authorization_updates%') as 'lock_send_get_amazon_authorization_updates'
- '% cron job에 대한 잠금: temando_process_platform_events%') as 'lock_temando_process_platform_events'
- '% lock for cron job: ddg_automation_status%') as 'lock_ddg_automation_status'
- '% lock for cron job: ddg_automation_status%') as 'lock_ddg_automation_status'
- '% cron job: sales_clean_orders%')을 'lock_sales_clean_orders'로 잠금
- '% cron 작업에 대한 잠금: catalog_index_refresh_price%')을 'lock_catalog_index_refresh_price'로
- '% cron job에 대한 잠금: magento_reward_balance_warning_notification%')이 'lock_magento_reward_balance_warning_notification'으로 설정됨
- '% cron job 잠금: analytics_update%') as 'lock_analytics_update'
- '% cron job: messagequeue_clean_oldeted_locks%')을(를) 'lock_messagequeue_clean_oldeted_locks'로 설정합니다.
- '% cron job: messagequeue_clean_oldeted_locks%')을(를) 'lock_messagequeue_clean_oldeted_locks'로 설정합니다.
- '% cron 작업에 대한 잠금: staging_apply_version%')을(를) 'lock_staging_apply_version'(으)로
- '% cron job: magento_reward_expire_points%')를 'lock_magento_reward_expire_points'로 잠금
- '% cron job: yotpo_yotpo_orders_sync%') as 'lock_yotpo_yotpo_orders_sync'
- '% cron job에 대한 잠금: catalog_event_status_checker%') as 'lock_catalog_event_status_checker'
- '% lock for cron job: ddg_automation_campaign%') as 'lock_ddg_automation_campaign'
- '% cron job: visitor_clean%')을 'lock_visitor_clean'으로 설정
- '% lock for cron job: scconnector_verify_website%')을 'lock_scconnector_verify_website'로 설정
- '% cron job에 대한 잠금: ddg_automation_email_templates%') as 'lock_ddg_automation_email_templates'
- '% cron job에 대한 잠금: aggregate_sales_report_order_data%')을 'lock_aggregate_sales_report_order_data'로 표시
- '% cron 작업 잠금: ddg_automation_catalog_sync%') as 'lock_ddg_automation
DB Statistics
DB Statistics 프레임에는 초당 삭제, 쓰기, 행 읽기, 업데이트 및 느린 쿼리가 표시됩니다.
Request frequency
Database Errors
Database Errors 프레임에는 다양한 데이터베이스 경고 및 오류가 표시됩니다.
- '%임시 테이블에 할당된 메모리 크기가 'temp_tbl_buff_pool'인 innodb_buffer_pool_size%의 20%를 초과합니다.
- '%[ERROR] WSREP: rbr 쓰기 실패%')를 'rbr_write_fail'로 함
- '%mysqld: Disk full%')이(가) 'disk_full'인 경우
- '%Error number 28%')을(를) 'err_28'(으)로
- '%rollback%')을 'rollback'으로
- '%Foreign KEY 제약 조건이 테이블%'에 대해 실패했습니다.) 'foreign_key_constraint'(으)로
- '%Error_code: 1114%')을(를) 'sql_1114_full'로 지정'%CRITICAL: SQLSTATE[HY000] [2006] MySQL Server가 없어짐%')을(를) 'sql_gone'으로 지정
- '%SQLSTATE[HY000] [1040] 연결이 너무 많음%').
- '%CRITICAL: SQLSTATE[HY000] [2002]%')가 'sql_2002'(으)로 설정됨
- '%SQLSTATE[08S01]:%')을(를) 'sql_1047'로 지정했습니다.
- '%[경고] 연결이 중단됨%')을(를) 'aborted_conn'(으)로 함
- '%SQLSTATE[23000]: 무결성 제약 조건 위반:%')이 'sql_23000'입니다.
- '%1205 대기 시간 제한%')을(를) 'sql_1205'(으)로 설정
- '%SQLSTATE[HY000] [1049] 알 수 없는 데이터베이스%')를 'sql_1049'로 지정했습니다.
- '%SQLSTATE[42S02]: 기본 테이블 또는 뷰를 찾을 수 없음:%')을 'sql_42S02'로 지정
- '%General 오류: 1114%')을(를) 'sql_1114'(으)로
- '%SQLSTATE[40001]%')을(를) 'sql_1213'(으)로
- '%SQLSTATE[42S22]: 열을 찾을 수 없음: 1054 알 수 없는 열%') as 'sq1_1054'
- '%SQLSTATE[42000]: 구문 오류 또는 액세스 위반:%') as'sql_42000'
- '%SQLSTATE[21000]: 카디널리티 위반:%')이(가) 'sql_1241'인 경우
- '%SQLSTATE[22003]:%')을(를) 'sql_22003'(으)로
- '%SQLSTATE[HY000] [9000] 클라이언트(IP 주소%')(이)가 'sql_9000'인 경우
- '%SQLSTATE[HY000]: 일반 오류: 2014%')가 'sql_2014'입니다.
- '%1927 연결이 끊어졌습니다.%') 'sql_1927'(으)로
- '%1062 [ERROR] InnoDB:%')이(가) 'sql_1062_e'인 경우
- ''%[참고] WSREP: 디스크에 메모리 맵을 플러시하는 중…%')을 'mem_map_flush'로 설정
- '%Internal MariaDB 오류 코드: 1146%')을(를) 'sql_1146'(으)로 설정
- '%내부 MariaDB 오류 코드: 1062%') as 'sql_1062' * '%1062 [경고] InnoDB:%') as 'sql_1062_w'
- '%Internal MariaDB 오류 코드: 1064%')을(를) 'sql_1064'(으)로 설정
- '%InnoDB: '%' 파일에서 어설션 오류가 발생했습니다. '%Assertion_err'(으)로 표시됨
- '%mysqld_safe 현재 실행 중인 프로세스 수: 0%')가 'mysql_oom'인 경우
- '%[ERROR] mysqld got signal%')이(가) 'mysql_sigterm'(으)로 표시됨
- '%1452%'를 'sql_1452'로 추가할 수 없습니다.
- '%ERROR 1698%')을(를) 'sql_1698'(으)로
- '%SQLSTATE[HY000]: 일반 오류: 3%')가 'cnt_wrt_tmp'입니다.
- '%일반 오류: 1 %')을(를) 'sql_syntax'로 지정했습니다.
- '%42S22%')을(를) 'sql_42S22'로 함
- '%InnoDB: 오류(중복 키)%')가 로그 시계열에서 'innodb_dup_key'로 표시됨
DB Error Table
DB Error Table 프레임에는 Database Errors 프레임과 동일한 정보가 표시되지만, 노드 및 테이블 형식으로 볼 수 있습니다. 자세한 내용은 MariaDB 오류 코드를 참조하십시오.
Database Traces
Database Traces 프레임에는 선택한 타임라인에서 유형별 데이터베이스 추적이 표시됩니다.
Database processes
Database processes 프레임에는 데이터베이스 프로세스, 환경 및 노드 식별자가 표시됩니다.
MySQL Non-Sleeping Threads by Node
노드별
MySQL Non-Sleeping Threads by Node 프레임에는 데이터베이스에 대한 연결 스레드가 표시됩니다. 이 프레임에는 활성 스레드가 표시됩니다.
MySQL Running and Sleeping Threads by environment
MySQL Running and Sleeping Threads by environment 프레임에는 데이터베이스에 대한 활성 연결과 절전 모드 연결이 모두 표시됩니다. 느린 쿼리가 절전 모드로 전환된 데이터베이스에 대한 연결이 있는 경우 절전 모드 연결이 있습니다. 대기 중인 연결은 잠긴 행 또는 테이블에 의해 차단되는 데이터베이스 쿼리일 수 있습니다. 이러한 수면 연결은 또한 PHP 작업자 연결을 보유하고 있습니다.
MySQL mem used by node
MySQL mem used by node 프레임은 MySQL의 노드 메모리 사용을 보여 줍니다. 더 큰 사이트에서, 이 프레임은 사용된 GBs의 메모리를 갖는 연속 막대일 수 있다.
Database mysql-slow.log
Database mysql-slow.log 프레임에는 선택한 기간 동안 mysql-slow.log
파일에 있었던 쿼리 문 형식이 표시됩니다.