Home | Back


การเพิ่มประสิทธิภาพ Disk I/O ด้วยระบบ EnhanceIO

Wednesday, 26 November 2014



ในการใช้งาน Linux เป็น Desktop หรือ เป็นพวก Database Server นั้น จะมีการติดต่อกับ Disk I/O (Hard Disk) ค่อนข้างมาก ทำให้ระบบมีการทำงานที่ช้าลง แต่เราสามารถเพิ่มประสิทธิภาพของ Disk I/O ได้ด้วยการทำ Disk Cache โดยอาจจะใช้ พวก SSD หรือแม้กระทั่ง Ramdisk มาใช้เป็น Disk Cache เพื่อให้ Hard Disk มีการทำงานที่ดีขึ้นได้ ดังนี้ครับ

1. ลง package ที่จำเป็น

เริ่มต้นเราต้องทำการลง enhanceio-dkms-git ซึ่งจะอยู่ใน Arch User Repository (AUR) และทำการสร้าง package จากภายนอก แต่การจะสร้าง package จากภายนอกได้นั้น เราต้องลง package base-devel ก่อนดังนี้

จากนั้นจึงทำการดาวน์โหลด enhanceio-dkms-git และทำการสร้าง package ดังนี้ครับ

การติดตั้ง package ก็เรียบร้อย

2. ทำการสร้าง RamDisk

ขั้นตอนต่อไปจะทำการสร้าง Ramdisk โดยขนาดตามความต้องการ โดยผมจะสร้าง Ramdisk ขนาด 2G โดยให้ mount กับ /cache จึงแก้ไขไฟล์ /etc/fstab ดังนี้ครับ

File : /etc/fstab

เมื่อทำการ reboot เครื่องใหม่ เราจะได้ Ramdisk ขนาด 2G ซึ่ง mount กับ /cache นั่นเอง

3. กำหนด script /etc/rc.local

กำหนดให้ระบบรัน script /etc/rc.local ทุกครั้งที่ start โดยดูได้จากบทความ การสร้างไฟล์ /etc/rc.local บน Archlinux จากนั้นจึงทำการแก้ไขไฟล์ /etc/rc.local ดังนี้

File : /etc/rc.local

#!/bin/bash

cd /cache
dd if=/dev/zero of=xcache bs=2000M count=1
losetup /dev/loop0 xcache
eio_cli create -s /dev/loop0 -d /dev/sda1 -c c1

ในไฟล์ /etc/rc.local จะมีการสร้างไฟล์ xcache มีขนาด 2000M และทำการสร้าง Loop Device ไปยัง /etc/loop0 และใช้คำสั่ง eio_cli เพื่อกำหนดให้ /dev/loop0 เป็น Disk Cache และ /etc/sda1 เป็นพาทิชั่นที่จะถูกเร่งประสิทธิภาพ และมีชื่อ Cache Name ชื่อ c1 นั่นเอง เมื่อทำการ reboot เครื่องใหม่ระบบ Disk Cache ก็จะพร้อมทำงาน โดยเราสามารถตรวจสอบได้ด้วยคำสั่งดังนี้

เรียบร้อยครับ :)



Home | Back