Score:0

ปัญหาประสิทธิภาพ MySQL เนื่องจากการแคช

ธง cn
perl mysqltuner.pl --host 127.0.0.1

[--] ข้ามการตรวจสอบเวอร์ชันสำหรับสคริปต์ MySQLTuner
[--] ทำการทดสอบเมื่อ 127.0.0.1:3306
[!!] รับรองความถูกต้องสำเร็จโดยไม่มีรหัสผ่าน - ความเสี่ยงด้านความปลอดภัย!
[!!] ล้มเหลวในการดำเนินการ: SHOW SLAVE STATUS\G
[!!] FAIL Execute SQL / return code: 256
[!!] ล้มเหลวในการดำเนินการ: SHOW SLAVE HOSTS\G
[!!] FAIL Execute SQL / return code: 256
[ตกลง] ขณะนี้รองรับ MySQL เวอร์ชัน 10.4.17-MariaDB
[ตกลง] ทำงานบนสถาปัตยกรรม 64 บิต
 
-------- สถิติเครื่องมือจัดเก็บข้อมูล --------------------------------------- --------------------------
[--] สถานะ: +Aria +CSV +InnoDB +MEMORY +MRG_MyISAM +MyISAM +PERFORMANCE_SCHEMA +SEQUENCE 
[!!] เปิดใช้งาน InnoDB แต่ไม่ได้ใช้งาน
[ตกลง] ตารางที่แยกส่วนทั้งหมด: 0
 
-------- ตัวชี้วัดประสิทธิภาพการวิเคราะห์ --------------------------------------- -----------------------
[--] innodb_stats_on_metadata: ปิด
[ตกลง] ไม่มีการอัปเดตสถิติระหว่างการสืบค้น INFORMATION_SCHEMA
 
-------- คำแนะนำด้านความปลอดภัย ---------------------------------------- --------------------------
[--] ข้ามไปเนื่องจากไม่มีคอลัมน์การรับรองความถูกต้องที่รู้จัก
 
-------- คำแนะนำด้านความปลอดภัย CVE --------------------------------------- -----------------------
[!!] CVE-2021-27928(<= 10.4.17) : "พบปัญหาการเรียกใช้โค้ดจากระยะไกลใน MariaDB 10.2 ก่อน 10.2.37
[!!] พบ 1 CVE สำหรับรุ่น MySQL ของคุณ
 
-------- การวัดประสิทธิภาพ ---------------------------------------- -------------------------------
[--] ขึ้นสำหรับ: 2d 20h 44m 2s (48K q [0.196 qps], 384 conn, TX: 885M, RX: 18M)
[--] อ่าน / เขียน: 99% / 1%
[--] การบันทึกไบนารีถูกปิดใช้งาน
[--] หน่วยความจำกายภาพ : 1.8G
[--] หน่วยความจำ MySQL สูงสุด : 46.5G
[--] หน่วยความจำกระบวนการอื่น: 0B
[--] บัฟเฟอร์ทั้งหมด: ทั่วโลก 8.3G + 258.9M ต่อเธรด (สูงสุด 151 เธรด)
[--] P_S การใช้หน่วยความจำสูงสุด: 0B
[--] การใช้หน่วยความจำสูงสุดของ Galera GCache: 0B
[!!] การใช้หน่วยความจำสูงสุด: 11.3G (617.92% ของ RAM ที่ติดตั้ง)
[!!] การใช้หน่วยความจำสูงสุดที่เป็นไปได้: 46.5G (2537.09% ของ RAM ที่ติดตั้ง)
[!!] การใช้หน่วยความจำโดยรวมที่เป็นไปได้กับกระบวนการอื่นเกินหน่วยความจำ
[ตกลง] ข้อความค้นหาช้า: 0% (0/48K)
[ตกลง] การใช้งานสูงสุดของการเชื่อมต่อที่มีอยู่: 7% (12/151)
[ตกลง] การเชื่อมต่อที่ถูกยกเลิก: 1.30% (5/384)
[!!] การจำแนกชื่อเปิดใช้งานอยู่ : การจำแนกชื่อแบบย้อนกลับถูกสร้างขึ้นสำหรับการเชื่อมต่อใหม่แต่ละครั้ง และสามารถลดประสิทธิภาพการทำงานได้
[!!] แคชแบบสอบถามอาจถูกปิดใช้งานตามค่าเริ่มต้นเนื่องจากการโต้แย้ง mutex
[!!] ประสิทธิภาพของแคชการค้นหา: 19.8% (แคช 11K / เลือก 56K)
[!!] คิวรีแคชพรุนต่อวัน: 7584
[ตกลง] การเรียงลำดับที่ต้องการตารางชั่วคราว: 0% (การเรียงลำดับ 1 อุณหภูมิ / การเรียงลำดับ 9K)
[ตกลง] ไม่มีการรวมโดยไม่มีดัชนี
[ตกลง] ตารางชั่วคราวที่สร้างบนดิสก์: 14% (1K บนดิสก์ / ทั้งหมด 10K)
[ตกลง] อัตราการเข้าถึงแคชของเธรด: 80% (สร้าง 73 ครั้ง / เชื่อมต่อ 384 ครั้ง)
[ตกลง] อัตราการเข้าถึงแคชของตาราง: 99% (การเข้าถึง 74K / คำขอ 74K)
[ตกลง] table_definition_cache(400) สูงกว่าจำนวนตาราง(77)
[ตกลง] ขีดจำกัดการเปิดไฟล์ที่ใช้: 0% (48/32K)
[ตกลง] ได้รับล็อคตารางทันที: 99% (5K ทันที / 5K ล็อค)
 
-------- แผนการปฏิบัติงาน ---------------------------------------- --------------------------------
[--] สคีมาประสิทธิภาพถูกปิดใช้งาน
[--] หน่วยความจำที่ใช้โดย P_S: 0B
[--] ไม่ได้ติดตั้งสคีมา Sys
 
-------- ตัวชี้วัด ThreadPool ---------------------------------------- --------------------------------
[--] เปิดใช้งานสถิติ ThreadPool
[--] ขนาดเธรดพูล: 1 เธรด
[--] การใช้ค่าเริ่มต้นนั้นดีพอสำหรับเวอร์ชันของคุณ (10.4.17-MariaDB)
 
-------- เมตริก MyISAM ---------------------------------------- ------------------------------------
[!!] บัฟเฟอร์คีย์ที่ใช้: 18.2% (ใช้ 24M / แคช 134M)
[ตกลง] ขนาดบัฟเฟอร์คีย์ / ดัชนี MyISAM ทั้งหมด: 128.0M/0B
 
-------- ตัวชี้วัด InnoDB ---------------------------------------- ------------------------------------
[--] เปิดใช้งาน InnoDB
[!!] ไม่มีโต๊ะเป็น Innodb
[--] การทำงานพร้อมกันของเธรด InnoDB: 0
[ตกลง] เปิดใช้งานไฟล์ InnoDB ต่อตารางแล้ว
[ตกลง] พูลบัฟเฟอร์ InnoDB / ขนาดข้อมูล: 8.0G/0B
[!!] Ratio InnoDB log file size / InnoDB Buffer pool size (1.171875 %): 48.0M * 2/8.0G ควรเท่ากับ 25%
[ตกลง] อินสแตนซ์ของพูลบัฟเฟอร์ InnoDB: 8
[--] จำนวน InnoDB Buffer Pool Chunk : 64 สำหรับ 8 Buffer Pool Instance(s)
[ตกลง] Innodb_buffer_pool_size สอดคล้องกับ Innodb_buffer_pool_chunk_size & Innodb_buffer_pool_instances
[ตกลง] ประสิทธิภาพบัฟเฟอร์การอ่าน InnoDB: 100.00% (609465732 ครั้ง/ รวม 609485088 ครั้ง)
[!!] ประสิทธิภาพ InnoDB Write Log: 88.45% (3109 ครั้ง/ ทั้งหมด 3515 ครั้ง)
[ตกลง] การรอบันทึก InnoDB: 0.00% (0 รอ / 406 เขียน)
 
-------- Aria เมตริก ---------------------------------------- --------------------------------------
[--] เปิดใช้งาน Aria Storage Engine
[ตกลง] ขนาดแคชเพจ Aria / ดัชนี Aria ทั้งหมด: 128.0M/0B
[!!] อัตราการเข้าถึง Aria pagecache: 94.9% (แคช 28K / อ่าน 1K)
 
-------- TokuDB เมตริก ---------------------------------------- ------------------------------------
[--] TokuDB ถูกปิดใช้งาน
 
-------- ตัวชี้วัด XtraDB ---------------------------------------- ------------------------------------
[--] XtraDB ถูกปิดใช้งาน
 
-------- Galera เมตริก ---------------------------------------- ------------------------------------
[--] Galera ถูกปิดใช้งาน
 
-------- เมตริกการจำลองแบบ ---------------------------------------- -------------------------------
[--] การจำลองแบบซิงโครนัสของ Galera: NO
[--] ไม่มีการจำลองแบบทาสสำหรับเซิร์ฟเวอร์นี้
[--] รูปแบบ Binlog: ผสม
[--] รองรับ XA: เปิด
[--] ต้นแบบการจำลองแบบกึ่งซิงโครนัส: ปิด
[--] ทาสการจำลองแบบกึ่งซิงโครนัส: ปิด
[--] นี่คือเซิร์ฟเวอร์แบบสแตนด์อโลน

หนึ่งในเซิร์ฟเวอร์ที่ใช้งานจริงของเรามีปัญหาด้านประสิทธิภาพ ฉันพบว่าส่วนใหญ่เกี่ยวข้องกับ MySQL และหลังจากเรียกใช้ MySQLTuner ฉันได้พบบางสิ่งที่น่าสนใจ น่าแปลกที่ไม่มีการเข้าร่วมหากไม่มีดัชนี ดังนั้นฉันไม่คิดว่าฉันจะทำอะไรได้มากนัก และดูเหมือนว่าเป็นเพราะการแคช และฉันรู้ว่าเรากำลังใช้ W3T Total Cache แต่ฉันไม่เห็นการกำหนดค่าใดๆ ยกเว้นการกำหนดค่าทั่วไปใน แผงการดูแลระบบ WP ดังนั้นฉันจึงสงสัยว่ามีวิธีที่ฉันสามารถแคชข้อความค้นหาเพิ่มเติมได้หรือไม่ เพราะดูเหมือนว่ามีเพียง 20% เท่านั้นที่ถูกแคชด้วยเหตุผลบางประการ และการตัดแต่งแคชของข้อความค้นหานั้นสูงเกินไป ฉันจึงสงสัยว่าฉันเข้าใจเมตริกเหล่านั้นถูกต้องหรือไม่ และฉันจะตัดแคชให้น้อยลงทุกวันเพื่อให้สามารถแคชได้อย่างน้อย 40% นอกจากนี้ ฉันคิดว่าการเพิ่ม RAM สามารถช่วยเซิร์ฟเวอร์ของเราได้ แต่นั่นเกือบจะเป็นคนละประเด็นกัน

ดูเหมือนว่าจะมีความเกี่ยวข้องมากที่สุด:

[!!] การใช้หน่วยความจำสูงสุด: 11.3G (617.92% ของ RAM ที่ติดตั้ง)
[!!] การใช้หน่วยความจำสูงสุดที่เป็นไปได้: 46.5G (2537.09% ของ RAM ที่ติดตั้ง)
[!!] การใช้หน่วยความจำโดยรวมที่เป็นไปได้กับกระบวนการอื่นเกินหน่วยความจำ
[!!] การจำแนกชื่อเปิดใช้งานอยู่ : การจำแนกชื่อแบบย้อนกลับถูกสร้างขึ้นสำหรับการเชื่อมต่อใหม่แต่ละครั้ง และสามารถลดประสิทธิภาพการทำงานได้
[!!] แคชแบบสอบถามอาจถูกปิดใช้งานตามค่าเริ่มต้นเนื่องจากการโต้แย้ง mutex
[!!] ประสิทธิภาพของแคชการค้นหา: 19.8% (แคช 11K / เลือก 56K)
[!!] คิวรีแคชพรุนต่อวัน: 7584
Score:0
ธง ua

ฉันสงสัยว่า การแลกเปลี่ยน คือปัญหาที่แท้จริง คุณมี RAM เกินกำหนด นี่คือสิ่งที่ทำให้ฉันโดดเด่น:

หน่วยความจำกายภาพ : 1.8G
บัฟเฟอร์พูล InnoDB / ขนาดข้อมูล: 8.0G/0B
การใช้งานสูงสุดของการเชื่อมต่อที่มีอยู่: 7% (12/151)

หลังจากเปลี่ยนเป็น InnoDB และปิด QC (ตามที่ Tero แนะนำ) โปรดทราบว่า RAM ของคุณเล็กเกินไปสำหรับค่าที่กำหนด innodb_buffer_pool_size.

โดยเฉพาะอย่างยิ่ง ทำการเปลี่ยนแปลงการกำหนดค่าเหล่านี้:

innodb_buffer_pool_size=500M
max_connections = 30
query_cache_type = 0
query_cache_size = 0
key_buffer_size = 24M

หากคุณยังพบปัญหาหลังจากทำการเปลี่ยนแปลง ให้เริ่มคำถามใหม่ใน dba.stackexchange.com เป็นฟอรัมที่ดีกว่าสำหรับการกำหนดค่า MySQL/MariaDB

Score:0
ธง us

ตารางทั้งหมดของคุณดูเหมือนจะเป็นตาราง MyISAM ขอแนะนำให้ตั้งค่าตารางทั้งหมดเป็นตาราง InnoDB ในปัจจุบัน

แคชแบบสอบถาม MySQL เป็นคุณสมบัติที่เลิกใช้แล้วเนื่องจากหลากหลาย ปัญหาดังนั้นจึงเป็นการดีที่สุดที่จะปิดการใช้งาน

หลังจากเปลี่ยนตารางทั้งหมดเป็น InnoDB แล้ว ให้รัน MySQLTuner อีกครั้งและปรับพูลบัฟเฟอร์ InnoDB ตามคำแนะนำ

คุณต้องอัปเกรดเซิร์ฟเวอร์ MySQL ของคุณด้วย เนื่องจากเวอร์ชันของคุณมีช่องโหว่เปิดอยู่

Michael Hampton avatar
cz flag
เป็น MariaDB มากกว่า MySQL; เกิดอะไรขึ้นกับการใช้ AriaDB, TokuDB หรือ XtraDB
us flag
ไม่น่าจะมีอะไรนอกจากความรู้ที่ยังไม่สมบูรณ์ของฉันเกี่ยวกับศิลปะปัจจุบัน :) ขอบคุณที่พูดถึงสิ่งเหล่านี้ พวกเขาดูน่าสนใจ

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา