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