ไม่มีคำอธิบายที่ชัดเจนในตัวแปรและสถานะ
การวิเคราะห์สถานะสากลและตัวแปร:
ข้อสังเกต:
- เวอร์ชัน: 8.0.20
- แรม 60 GB
- เวลาทำงาน = 04:49:11; ค่า GLOBAL STATUS บางค่าอาจยังไม่มีความหมาย
- คุณกำลังทำงานบน Windows
- 4.89 คำถาม/วินาที : 3.43 คำถาม/วินาที
ปัญหาที่สำคัญกว่า:
แทบไม่มีอะไรเกิดขึ้น ฉันมีปัญหาในการจินตนาการว่า MySQL ทำให้เกิดความผิดพลาด
ต่ำกว่า max_connections
ถึง 500 (มีการเชื่อมต่อพร้อมกันไม่เกิน 23 ครั้งตั้งแต่เริ่มต้น)
tmp_table_size = 500M -- ขณะนี้สูงจนเป็นอันตรายสำหรับจำนวน RAM ที่คุณมี
innodb_doublewrite = เปิด
รายละเอียดและข้อสังเกตอื่นๆ:
( innodb_lru_scan_ความลึก * innodb_page_cleaners ) = 1,024 * 4 = 4,096
-- จำนวนงานสำหรับโปรแกรมทำความสะอาดหน้าทุกๆ วินาที
-- "InnoDB: page_cleaner: 1,000ms ตั้งใจวนลูปเอา ..." อาจแก้ไขได้โดยลดระดับ lru_scan_html: พิจารณา 1,000 / innodb_page_cleaners (ตอนนี้ 4) ตรวจสอบการแลกเปลี่ยนด้วย
( innodb_lru_scan_ความลึก ) = 1,024
-- "InnoDB: page_cleaner: 1000ms ตั้งใจวนลูปเอา ..." อาจแก้ไขได้โดยการลดระดับ lru_scan_html
( Innodb_buffer_pool_pages_free * 16384 / innodb_buffer_pool_size ) = 2,478,311 * 16384 / 38912M = 99.5%
- บัฟเฟอร์พูลฟรี
-- buffer_pool_size ใหญ่กว่าชุดการทำงาน ก็สามารถลดลงได้
( innodb_io_capacity ) = 200
-- เมื่อล้าง ให้ใช้ IOP จำนวนมากนี้
-- การอ่านอาจเฉื่อยชาหรือแหลมคม
( Innodb_buffer_pool_pages_free / Innodb_buffer_pool_pages_total ) = 2,478,311 / 2490368 = 99.5%
-- ส่วนของ buffer_pool ไม่ได้ใช้งานอยู่ในขณะนี้
-- innodb_buffer_pool_size (ตอนนี้ 40802189312) ใหญ่เกินความจำเป็นหรือไม่
( innodb_io_capacity_max / innodb_io_capacity ) = 2,000 / 200 = 10
-- ความจุ: สูงสุด/ธรรมดา
-- ข้อแนะนำ 2. ค่าสูงสุดควรเท่ากับ IOP ที่ระบบย่อย I/O ของคุณสามารถจัดการได้ (หากไม่ทราบประเภทไดรฟ์ 2000/200 อาจเป็นคู่ที่เหมาะสม)
( Innodb_buffer_pool_bytes_data / innodb_buffer_pool_size ) = 196,214,784 / 38912M = 0.48%
-- เปอร์เซ็นต์ของบัฟเฟอร์พูลที่ใช้โดยข้อมูล
-- เปอร์เซ็นต์เล็กน้อย อาจ ระบุว่า buffer_pool มีขนาดใหญ่โดยไม่จำเป็น
( innodb_doublewrite ) = innodb_doublewrite = ปิด
- I/O พิเศษ แต่ความปลอดภัยเป็นพิเศษเมื่อเกิดการชน
-- ปิดใช้ได้สำหรับ FusionIO, Galera, Replicas, ZFS
( Innodb_os_log_written / (เวลาทำงาน / 3600) / innodb_log_files_in_group / innodb_log_file_size ) = 3,944,448 / (17351 / 3600) / 2 / 48M = 0.00813
-- อัตราส่วน
-- (ดูนาที)
( เวลาทำงาน / 60 * innodb_log_file_size / Innodb_os_log_written ) = 17,351 / 60 * 48M / 3944448 = 3,690
-- นาทีระหว่างการหมุนบันทึก InnoDB ตั้งแต่ 5.6.8 เป็นต้นไป สามารถเปลี่ยนแปลงได้แบบไดนามิก อย่าลืมเปลี่ยน my.cnf ด้วย
-- (คำแนะนำ 60 นาทีระหว่างการหมุนค่อนข้างไม่มีกฎเกณฑ์) ปรับ innodb_log_file_size (ตอนนี้ 50331648) (ไม่สามารถเปลี่ยนแปลงใน AWS)
( innodb_flush_method ) = innodb_flush_method = ไม่บัฟเฟอร์
-- InnoDB ควรขอให้ OS เขียนบล็อกอย่างไร แนะนำ O_DIRECT หรือ O_ALL_DIRECT (Percona) เพื่อหลีกเลี่ยงการบัฟเฟอร์ซ้ำซ้อน (อย่างน้อยสำหรับ Unix) ดู chrischandler สำหรับคำเตือนเกี่ยวกับ O_ALL_DIRECT
( innodb_io_capacity ) = 200
- I/O ops ต่อวินาทีที่มีความสามารถบนดิสก์ 100 สำหรับไดรฟ์ช้า 200 สำหรับไดรฟ์แบบหมุน 1,000-2,000 สำหรับ SSD; คูณด้วยปัจจัย RAID
( innodb_adaptive_hash_index ) = innodb_adaptive_hash_index = เปิด
-- โดยปกติควรจะเปิด
-- มีหลายกรณีที่ปิดดีกว่า ดูเพิ่มเติมที่ innodb_adaptive_hash_index_parts (ตอนนี้ 8) (หลัง 5.7.9) และ innodb_adaptive_hash_index_partitions (MariaDB และ Percona) ON มีส่วนเกี่ยวข้องกับข้อขัดข้องที่หายาก (ข้อผิดพลาด 73890) 10.5.0 ตัดสินใจที่จะปิดค่าเริ่มต้น
( innodb_print_all_deadlocks ) = innodb_print_all_deadlocks = ปิด
-- ไม่ว่าจะบันทึก Deadlocks ทั้งหมด
-- หากคุณประสบปัญหา Deadlocks ให้เปิดใช้งาน ข้อควรระวัง: หากคุณมีการชะงักงันจำนวนมาก สิ่งนี้อาจเขียนจำนวนมากลงในดิสก์
( max_connections ) = 2,000
-- จำนวนการเชื่อมต่อสูงสุด (เธรด) ส่งผลกระทบต่อการจัดสรรต่างๆ
-- หาก max_connections (ปัจจุบันคือ 2000) สูงเกินไปและการตั้งค่าหน่วยความจำต่างๆ สูง คุณอาจใช้ RAM จนหมด
(bulk_insert_buffer_size) = 8 / 61440M = 0.01%
-- บัฟเฟอร์สำหรับการแทรกหลายแถวและโหลดข้อมูล
-- ใหญ่เกินไปอาจคุกคามขนาด RAM ขนาดเล็กเกินไปอาจขัดขวางการดำเนินการดังกล่าว
( tmp_table_size ) = 4096M
--จำกัดขนาดของ หน่วยความจำ ตาราง temp ที่ใช้เพื่อรองรับ SELECT
-- ลด tmp_table_size (ตอนนี้เป็น 4294967296) เพื่อป้องกันไม่ให้ RAM หมด อาจจะไม่เกิน64M.
( Select_full_join / Com_select ) = 15,198 / 31082 = 48.9%
-- % ของการเลือกที่มีการรวมแบบไม่มีดัชนี
-- เพิ่มดัชนีที่เหมาะสมลงในตารางที่ใช้ในการเข้าร่วม
( Com_admin_commands / ข้อความค้นหา ) = 25,348 / 84808 = 29.9%
-- เปอร์เซ็นต์ของข้อความค้นหาที่เป็นคำสั่ง "admin"
-- เกิดอะไรขึ้น?
( long_query_time ) = 10
-- Cutoff (วินาที) สำหรับกำหนดแบบสอบถาม "ช้า"
-- แนะนำ 2
( log_slow_slave_statements ) = log_slow_slave_statements = ปิด
-- (5.6.11, 5.7.1) ตามค่าเริ่มต้น คำสั่งที่จำลองจะไม่ปรากฏในสโลว์ล็อก สิ่งนี้ทำให้พวกเขาแสดง
-- อาจมีประโยชน์ใน slowlog เพื่อดูการเขียนที่อาจรบกวนการอ่าน Replica
( back_log ) = 80
-- (ปรับขนาดอัตโนมัติตั้งแต่ 5.6.6 อ้างอิงจาก max_connections)
-- การเพิ่มขึ้นเป็น min(150, max_connections (ปัจจุบันคือ 2000)) อาจช่วยได้เมื่อทำการเชื่อมต่อจำนวนมาก
( max_used_connections / max_connections ) = 23/2000 = 1.1%
-- % สูงสุดของการเชื่อมต่อ
-- เนื่องจากปัจจัยหน่วยความจำหลายอย่างสามารถขยายได้ตาม max_connections (ปัจจุบันคือ 2000) จึงเป็นการดีที่จะไม่ตั้งค่านั้นสูงเกินไป
( Com_change_db / การเชื่อมต่อ ) = 25,413 / 311 = 81.7
-- สวิตช์ฐานข้อมูลต่อการเชื่อมต่อ
-- (เล็กน้อย) พิจารณาใช้ไวยากรณ์ "db.table"
( Aborted_connects / การเชื่อมต่อ ) = 227/311 = 73.0%
-- บางทีแฮ็กเกอร์อาจพยายามเจาะเข้าไป? (พยายามเชื่อมต่อ)
เล็กผิดปกติ:
10 * read_buffer_size = 0.6MB
Com_insert = 4.4 /ชม
Handler_read_next = 16 /วินาที
Innodb_buffer_pool_reads * innodb_page_size / innodb_buffer_pool_size = 0.47%
Innodb_dblwr_pages_written = 0
Innodb_rows_updated = 0.62 /ชม
back_log / max_connections = 4.0%
innodb_doublewrite_files = 0
innodb_doublewrite_pages = 0
ใหญ่ผิดปกติ:
Com_create_db = 0.21 /ชม
Com_create_table = 92 /ชม
Com_show_charsets = 1.7 /ชม
Com_show_plugins = 0.41 /ชม
Com_show_storage_engines = 0.41 /ชม
Innodb_buffer_pool_pages_free = 2.48e+6
Innodb_system_rows_deleted = 0.1 /วินาที
Innodb_system_rows_inserted = 0.1 /วินาที
Innodb_system_rows_updated = 0.32 /วินาที
Ssl_accepts = 304
Ssl_default_timeout = 7,200
Ssl_finished_accepts = 304
Ssl_session_cache_hits = 290
Ssl_session_cache_timeouts = 5
Ssl_verify_ความลึก = 4.29e+9
Ssl_verify_mode = 5
gtid_executed_compression_period = 0.058 /วินาที
innodb_thread_concurrency = 21
max_error_count = 1,024
max_length_for_sort_data = 4,096
Optimizer_trace_offset = --1
performance_schema_max_cond_classes = 100
performance_schema_max_mutex_classes = 300
performance_schema_max_rwlock_classes = 60
performance_schema_max_stage_classes = 175
performance_schema_max_statement_classes = 218
performance_schema_max_thread_classes = 100
สตริงที่ผิดปกติ:
event_scheduler = เปิด
ft_boolean_syntax = + -><()~*:\"\"&
have_query_cache = ไม่
innodb_fast_shutdown = 1
innodb_temp_tablespaces_dir = .\#innodb_temp\
lower_case_file_system = เปิด
lower_case_table_names = 1
mysqlx_compression_algorithms = DEFLATE_STREAM,LZ4_MESSAGE,ZSTD_STREAM
Optimizer_trace = เปิดใช้งาน = ปิด, one_line = ปิด
Optimizer_trace_features = โลภมาก = เปิด, range_optimizer = เปิด, dynamic_range = เปิด, repeat_subselect = เปิด
protocol_compression_algorithms = zlib,zstd,ไม่บีบอัด
slave_rows_search_algorithms = INDEX_SCAN,HASH_SCAN