Load Cycle Count !

ไม่นานมานี้ที่ http://slashdot.org มี article เรื่อง Ubuntu May Be Killing Your Laptop’s Hard Drive .. เรื่องของเรื่องก็คือ ฮาร์ดดิสก์โน้ตบุ๊คสมัยใหม่จะมีฟีเจอร์ load/unload ซึ่งทำงานคล้ายๆ กับการ park หัวอ่านของดิสก์ วิธีการ load จะเคลื่อนหัวอ่านเข้าหลังจาก spin จานจนได้รอบที่ทำให้หัวอ่านลอย และการ unload ก็จะเคลื่อนหัวเก็บก่อนแล้วค่อย spin down ฟีเจอร์ load/unload มีจำนวนรอบในการทำงานจำกัด ทำบ่อยๆ กลไกมันจะมีความแม่นยำลดลงจนอาจจะเกิดผลเสียกับแผ่นจาน ตัวเลขโดยประมาณคือที่ 600,000 รอบก็จะเริ่มมีอาการไม่ค่อยน่าเชื่อถือ .. พูดง่ายๆ คือ load/unload บ่อยๆ อาจทำให้อายุดิสก์จะสั้นลงได้ .. ทีนี้พวกฮาร์ดดิสก์ของโน้ตบุ๊คที่มี power management ก็มักจะลดการใช้พลังงานอยู่ใน stand-by mode โดยการ spin down หรือไม่ก็ sleep ไปเลย ทำให้ดิสก์ต้อง load/unload อยู่เรื่อยๆ หลังจากอ่าน article แล้วเลยดู load cycle ของเครื่องตัวเองสักหน่อย …

# smartctl -a /dev/sda
...
9 Power_On_Hours 0x0032 094 094 000 Old_age Always - 2484
...
193 Load_Cycle_Count 0x0032 076 076 000 Old_age Always - 248068
..

เฮือก! ดิสก์ข้าน้อย load/unload ชั่วโมงละ 100 ครั้ง! เป็นไปได้ไงเนี่ยะ! .. คำนวณหยาบๆ ก็ได้คำตอบว่าถ้ายังคงอัตรานี้ ดิสก์อาจหมดอายุขัยในอีก 11 – 12 เดือนข้างหน้า (- -‘)

วิธีแก้ไข ? ตรงไปตรงมาก็ปิด power management ซะ

# hdparm -B 255 -S 0 /dev/sda

ดิสก์บางตัวอาจต้องใช้ -B 254 แทน ส่วนค่า -S 0 จะเป็นการ disable stand-by timeout ถ้าไม่ชอบ ลอง man hdparm เพิ่มเติมเอาละกัน .. เอาคำสั่งนี้ไปใส่ใน /etc/rc.local และ /etc/acpi/resume.d/99-disable-disk-pm.sh เลยก็น่าจะดี … แต่ทำอย่างนี้ไม่ใช่ว่าไม่มีผลเสีย อย่างน้อยเวลาใช้ on-battery ลดลงแน่ๆ

เรื่องนี้มีข้อสังเกตหลายประการที่ทำให้มีการถกต่อไปอีก อย่างแรกคือหัว article ออกจะ FUDs พอสมควร ที่มาของเรื่องนี้เกิดจากการถกกันใน launchpad เลยจั่วหัวเป็น Ubuntu ซะงั้น ที่จริงแล้ว OS ไหนๆ ก็มีปัญหากับกรณีนี้ได้หมดแหละ ในส่วน Ubuntu เองมี script ปรับการทำงานของ power management ที่ส่งผลกับ load cycle จริง แต่มันจะทำงานเฉพาะใน Laptop Mode ซึ่ง disabled by default .. ทีนี้ทำไม load cycle มันวิ่งกระฉูดขนาด 100 cycle ต่อชั่วโมงก็ยังหาคำตอบกันไม่ได้ … อย่างที่สองคือกรณีของข้าน้อย 100 cycle ต่อนาที นี่มันผิดปกติมาก! จะเป็นตัวเลขที่ถูกต้องหรือเปล่าก็ไม่แน่ใจเหมือนกัน .. อย่างที่สามคือถกกันขำๆ ว่างานนี้สงสัย OS vendor สมคบคิดกับบริษัทผลิตดิสก์ทำให้เจ๊งไวจะได้ซื้อดิสก์ใหม่บ่อยๆ .. (- -)a … เอาเข้าไป .. ถ้าดิสก์ยี่ห้อไหนมันเจ๊งง่ายตูก็ไม่ซื้อมาใช้อยู่ดีแหละน่า .. สุดท้าย ค่า -B 255 -S 0 มีผลดีหรือเสียต่อตัวดิสก์เองหรือเปล่าก็ไม่รู้ .. เครื่องใครเครื่องมัน .. ดิสก์ใครดิสก์มัน .. ตัวใครตัวมันล่ะครับ :P