Damrongsak Reetanon
1 min readJan 7, 2018

Patch เพื่อแก้ไขช่องโหว่ Spectre และ Meltdown จะทำให้เครื่องช้าลง

ช่องโหว่ต้อนรับปี 2018 ที่ทำให้คน IT ที่ต้องหันมามองกันทั่วโลก คงจะเป็น Spectre และ Meltdown ช่องโหว่นี้เกิดจากกลไกการเพิ่มประสิทธิภาพในการทำงานของ CPU ที่เรียกกันว่า Speculative Execution ช่องโหว่นี้ทำให้ผู้โจมตีเข้าถึงข้อมูลในหน่วยความจำได้ทั้ง ๆ ที่ไม่มีสิทธิ์จะเข้าถึงหน่วยความจำในส่วนนั้น โดยที่วิธีการในการโจมตี Speculative Execution ที่ค้นพบหลัก ๆ จะมี 3 วิธี โดยที่ 2 วิธีจะทำให้เกิดช่องโหว่ที่เรียกกันว่า Spectre และอีก 1 วิธีจะทำให้เกิดช่องโหว่ที่เรียกว่า Meltdown

Patch เพื่อปิดช่องโหว่ของ Red Hat

  • patch เพื่อแก้ไขช่องโหว่ Spectre แก้ไขด้วย CVE-2017–5753 และ CVE-2017–5715
  • patch เพื่อแก้ไขช่องโหว่ Meltdown แก้ไขด้วย CVE-2017–5754

ผลกระทบจาก patch

ในเมื่อปัญหาเกิดขึ้นจากกลไกการเพิ่มประสิทธิภาพของการทำงาน ดังนั้นการแก้ปัญหาช่องโหว่นี้ ผลที่กระทบที่ตามมาในตอนนี้ก็คือจะทำให้ประสิทธิภาพในการทำงานลดลงอย่างเป็นได้ชัดในบางประเภทของงาน ทีม Performance ของ Red Hat ได้ทำการทดสอบประสิทธิภาพของการทำงานที่ลดลง พบว่างานบางชนิดประสิทธิภาพบในการทำงานลดลงอย่างเห็นได้ชัด แต่ในทางตรงกันข้ามงานบางประเภทก็เกือบจะไม่มีผลกระทบเลย ทีม Performance ของ Red Hat แบ่งชนิดของงานตามผลกระทบกับประสิทธิภาพของ Red Hat Enterprise Linux 7 ที่เกิดขึ้นดังนี้

  • ประสิทธิภาพเปลี่ยนแปลงอย่างชัดเจน งานประเภทที่ทำให้ประสิทธิภาพลดลงประมาณ 8–19% ได้แก่งานประเภพที่มีการใช้งาน Cached Random Memory เป็นจำนวนมาก, ใช้งาน Buffered I/O, OLTP Database และ งานประเภทที่ มี transaction ระหว่าง. Kernel และ User Space เป็นปริมาณมาก
  • ประสิทธิภาพเปลี่ยนแปลงเล็กน้อย งานประเภทที่ทำให้ประสิทธิภาพลดลงประมาณ 3–7% ได้แก่งานประเภท Database Analytics, DSS (Decision Support System) และพวกที่ใช้งานผ่าน Java VMs มี transaction ระหว่าง Kernel และ User Space ขนาดปริมาณปานกลาง
  • ประสิทธิภาพเปลี่ยนแปลงน้อยมาก งานประเภทที่ทำให้ประสิทธิภาพลดลงประมาณ 2–5% ได้แก่งานประเภทที่มีการใช้งาน CPU สูง ๆ จำพวก HPC (High Performance Computing) เพราะว่า งานส่วนใหญ่ใช้งานอยู่ใน User Space
  • เกือบไม่มีผลกับทบกับประสิทธิภาพ งานประเภทที่ทำให้ประสิทธิภาพลดลงน้อยกว่า 2% ได้แก่งานประเภทใช้เทคโนโลยีในการ bypass ผ่าน kernel ไปให้ hardware ทำงานในส่วนนั้น เช่น DPDK (Data Plan Development Kit) ที่ทำให้ภาระการจัดการ network packet processing จากเดิมที่เป็นภาระของ CPU ไปทำงานที่ Network Interface Card แทน

หมายเหตุ: เครื่องมือที่ใช้ทำสอบ เช่น netpref/upref, iozone และ fio ถูกออกแบบให้ทำงานเฉพาะ hardware ทำให้ผลการทดสอบใช้อ้างอิงได้ครอบคลุมในทุกกรณี

ผลกระทบในกรณีที่ใช้ Container Technology

ในการใช้งาน container technology ในทุก ๆ container ที่เรียกใช้งานถ้าพิจารณาดูก็จะคือ 1 process ในระบบซึ่งก็จะต้องทำงานผ่าน kernel เหมือนกับ application ในรูปแบบอื่น ๆ และจะยิ่งมีผลกระทบสูงขึ้นถ้า container ทำงานอยู่บน virtual machine เนื่องจากว่าการทำงานอย่าง Virtualization จะมี transaction ระหว่าง kernel กับ user space มากกว่าการทำงานบน bare metal

Damrongsak Reetanon
Damrongsak Reetanon

Written by Damrongsak Reetanon

OpenSource |Cloud Computing|Automation|DevOps

No responses yet