น่าจะยังพอจำโฆษณา Pentium 4 HT ที่ HT ย่อมาจาก "Hyper-Threading" ซึ่งอินเทลโฆษณาเราว่า เร็วเหมือนมีซีพียูสองตัว (จริงๆ เป็นซีพียูเสมือน)
ตอนนี้ชักจะไม่จริงแล้ว เมื่อมีผู้ใช้จำนวนมากในงานเซิร์ฟเวอร์ออกมาบ่นว่า การเปิด Hyper-Threading พบว่าเครื่องทำงานช้าลง โปรแกรมที่ได้รับผลกระทบในข่าวคือ Citrix Terminal Server และ MS SQL 2005
สาเหตุคาดว่าเกิดจากสองเธร็ดที่เรียกข้อมูลจากหน่วยความจำคนละส่วนกัน ดันเรียกใช้ข้อมูลนั้นจากแคชพร้อมกัน ทำให้แคชไม่สามารถเก็บข้อมูลที่เหมาะสมให้ได้ (เลือกไม่ถูก) ส่งผลให้ประสิทธิภาพตกลงเป็นอย่างมาก
จาก ZDNET
Comments
ปัญหานี้ถูกยืนยันแล้วโดยโปรแกรมเมอร์ของไมโครซอฟท์
จุดหลักของปัญหาคือเมื่อมีเธร็ดที่ใช้หน่วยควาามจำมหาศาล อย่างเช่นโปรแกรมดาต้าเบสที่มี LazyWriter มันจะวิ่งกวาดหน่วยความจำทำให้แคชมัน Miss ตลอดเวลา ปรากฎว่าเธร็ดอื่นซึ่งรันอยู่ด้วยกันแต่ไม่ได้ใช้หน่วยความจำแบบโหดๆ เหมือนกันต้องมารับกรรมที่แคชมัน Miss ไปแล้ว ทำให้เสียประสิทธิภาพลงไป อาจจะถึง 10%
งานนี้ Intel หน้าแหกสนิท
lewcpe.com, @wasonliw
แล้วถ้าเป็น dual core จริงๆ มันจะมีปัญหานี้มั้ยครับเนี่ย
Amorn - ขึ้นกับว่า cache มันแยกกันมั๊ยน่ะครับ
ผมยังไม่ชัวร์ว่า Dual-Core มันแยกแคชออกจากกันทุกตัวรึเปล่า
lewcpe.com, @wasonliw
อาทิตย์ที่แล้วผมไปปิด HT ที่ server (ใน bios มันมีให้เลือกอ่ะครับ ไม่รุ้มันปิดได้จริงเปล่า) มันจะเร็วขึ้นมั๊ยหว่า
iPAtS
ipats - ปิดได้จริงๆ ครับ ถ้าเ็ป็น Application ที่มีปัญหามันจะทำให้เร็วขึ้น 10% ได้ แต่ถ้าโปรแกรมที่เรารันไม่ได้ใช่่แรมหนักๆ แบบที่เจอกัน มันจะช้าลง
lewcpe.com, @wasonliw
แล้วพวกเล่นเกมนี่จะเปิดหรือปิดดีหว่า เดี๋ยวนี้เล่นเกมออนไลน์พร้อมกับเปิด TeamSpeak คุยออนไลน์ไปด้วยน่ะสิ :-/
เป็นส่วนเกิน ในชีวิตเธอ ที่เธอไม่ต้องการ~
@iannnnn
แล้วถ้าเป็นพวก MSSQL2000 ล่ะ มีผลหรือเปล่า
lew - เท่าที่ทราบ dual core ตอนนี้แยกแคชทุกตัวนะครับ แต่ dual core รุ่นใหม่ของอินเทลจะใช้แคชร่วมที่เรียกว่า smart cache คือ ถ้าแต่เดิมมีแคชคอร์ละ 1 MB สองคอร์รวมเป็น 2 MB รุ่นใหม่ก็จะมี 2 MB ชุดเดียว แต่สามารถเข้าถึงได้จากทั้งสองคอร์ ไม่รู้อย่างนี้จะเกิดปัญหาซ้ำรอย HT หรือเปล่า
ผมว่าปัญหานี้น่าสามารถแก้ที่ software ได้นะ