Skip to main content

Performance Tuning ในการใช้ Linux

บทนำ

การปรับแต่งประสิทธิภาพ (Performance Tuning) ของระบบ Linux เป็นกระบวนการที่ช่วยเพิ่มประสิทธิภาพการทำงานของระบบ โดยการปรับการตั้งค่าและการจัดการทรัพยากรให้เหมาะสมกับลักษณะการใช้งานของระบบ ในบทนี้, เราจะพูดถึงวิธีการและเครื่องมือที่สามารถใช้ในการปรับแต่งประสิทธิภาพของระบบ Linux

1. การปรับแต่ง CPU

1.1 การตรวจสอบการใช้งาน CPU

การตรวจสอบการใช้งาน CPU จะช่วยให้คุณรู้ว่าโปรเซสใดที่ใช้พลังงาน CPU มากที่สุดและปรับการใช้งานให้เหมาะสม

# การดูการใช้งาน CPU ในรูปแบบกราฟ
top

# การตรวจสอบการใช้ CPU โดยใช้ mpstat
mpstat -P ALL 1

1.2 การตั้งค่า CPU Governor

CPU Governor ใช้ในการจัดการการปรับความเร็วของ CPU เพื่อให้เหมาะสมกับการใช้งาน

# การตรวจสอบ CPU Governor ที่ใช้งาน
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

# การตั้งค่า CPU Governor เป็น performance
echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

1.3 การใช้ taskset สำหรับการตั้งค่า CPU Affinity

การตั้งค่า CPU Affinity ช่วยให้โปรเซสทำงานกับ CPU ที่เฉพาะเจาะจง เพื่อเพิ่มประสิทธิภาพการทำงาน

# การตั้งค่า CPU Affinity สำหรับโปรเซส
taskset -c 0,1 <command>

2. การปรับแต่งหน่วยความจำ (Memory Tuning)

2.1 การตรวจสอบการใช้งานหน่วยความจำ

การตรวจสอบการใช้งานหน่วยความจำเป็นการติดตามการใช้งานของระบบที่สามารถช่วยให้คุณหาจุดบกพร่องในการใช้งานหน่วยความจำ

# การดูการใช้งานหน่วยความจำ
free -h

# การดูการใช้งาน swap
swapon --show

2.2 การตั้งค่า Swappiness

ค่าของ swappiness ควบคุมว่าเมื่อไรระบบจะใช้ swap memory ซึ่งมีผลต่อประสิทธิภาพการทำงาน

# การตรวจสอบค่า swappiness
cat /proc/sys/vm/swappiness

# การตั้งค่า swappiness ให้เป็น 10
sudo sysctl vm.swappiness=10

2.3 การใช้ numactrl สำหรับการจัดการหน่วยความจำ

การใช้ numactrl ช่วยในการปรับการจัดการหน่วยความจำในระบบที่มีหลายหน่วยความจำ

# การใช้งาน numactrl เพื่อดูการตั้งค่าหน่วยความจำ
numactrl --hardware

3. การปรับแต่ง I/O Performance

3.1 การตรวจสอบการใช้งาน I/O

การตรวจสอบการใช้งาน I/O เป็นการดูว่าโปรเซสใดที่ใช้งานดิสก์มากที่สุด

# การใช้ iostat เพื่อตรวจสอบ I/O
iostat -x 1

3.2 การใช้ tuned สำหรับการปรับแต่ง I/O

Tuned เป็นเครื่องมือที่ช่วยปรับแต่งระบบให้เหมาะสมกับการใช้งานต่างๆ เช่น การตั้งค่าระบบให้เหมาะสมกับการใช้งานที่ต้องการประสิทธิภาพ I/O

# การติดตั้ง tuned
sudo apt install tuned

# การเริ่มต้นใช้โปรไฟล์ tuned
sudo tuned-adm profile throughput-performance

4. การปรับแต่งการจัดการไฟล์ (File System Tuning)

4.1 การใช้ SSD

หากคุณใช้ SSD บนระบบ Linux คุณสามารถปรับแต่งเพื่อให้ได้ประสิทธิภาพที่ดีที่สุด

# การเปิดใช้งาน TRIM สำหรับ SSD
sudo systemctl enable fstrim.timer

4.2 การปรับแต่งการใช้งานระบบไฟล์

การเลือกระบบไฟล์ที่เหมาะสมกับการใช้งานจะช่วยให้ประสิทธิภาพดีขึ้น เช่น การใช้ ext4 หรือ xfs ตามความเหมาะสม

# การตรวจสอบชนิดของระบบไฟล์
df -T

# การตั้งค่าระบบไฟล์ ext4 ให้มีประสิทธิภาพสูงสุด
sudo tune2fs -o journal_data_writeback /dev/sda1

5. การปรับแต่งการจัดการโปรเซส

5.1 การตรวจสอบโปรเซสที่ทำงานอยู่

การตรวจสอบโปรเซสที่ทำงานอยู่ช่วยให้คุณเห็นว่าโปรเซสใดใช้พลังงานมากที่สุด

# การใช้ top เพื่อดูโปรเซส
top

# การใช้ htop เพื่อดูโปรเซส
htop

5.2 การใช้ nice และ renice สำหรับการตั้งค่า priority

การตั้งค่าความสำคัญของโปรเซสด้วย nice หรือ renice จะช่วยให้โปรเซสทำงานได้เร็วขึ้นหรือลดผลกระทบจากโปรเซสที่มี priority ต่ำ

# การใช้ nice ในการเริ่มโปรเซส
nice -n 10 <command>

# การใช้ renice สำหรับการเปลี่ยน priority ของโปรเซส
sudo renice -n 10 -p <PID>

6. การปรับแต่ง Network Performance

6.1 การตรวจสอบการใช้งานเครือข่าย

การตรวจสอบการใช้งานเครือข่ายช่วยให้คุณเห็นว่าโปรเซสใดที่ใช้แบนด์วิธมากที่สุด

# การใช้ netstat เพื่อดูการเชื่อมต่อเครือข่าย
netstat -tuln

# การใช้ ifstat เพื่อตรวจสอบการใช้งานเครือข่าย
ifstat

6.2 การตั้งค่า TCP Parameters

การปรับแต่งค่า TCP บางประการสามารถช่วยเพิ่มประสิทธิภาพของเครือข่ายได้

# การตรวจสอบ TCP parameters
sysctl net.ipv4.tcp_rmem
sysctl net.ipv4.tcp_wmem

# การตั้งค่าค่า TCP buffer ให้มีขนาดใหญ่ขึ้น
sudo sysctl -w net.ipv4.tcp_rmem="4096 87380 6291456"

7. การใช้งาน System Monitoring Tools

7.1 การติดตั้งเครื่องมือ Monitoring

การติดตั้งเครื่องมือสำหรับตรวจสอบประสิทธิภาพของระบบเช่น sar, dstat, sysstat จะช่วยให้คุณสามารถติดตามการใช้งานของระบบได้อย่างละเอียด

# การติดตั้ง sysstat
sudo apt install sysstat

# การใช้งาน sar เพื่อตรวจสอบการใช้งาน CPU
sar -u 1 5

สรุป

การปรับแต่งประสิทธิภาพ (Performance Tuning) ของระบบ Linux เป็นกระบวนการที่ต้องใช้เครื่องมือและการตั้งค่าที่หลากหลาย เพื่อให้มั่นใจว่าระบบจะทำงานได้อย่างมีประสิทธิภาพสูงสุด การตรวจสอบการใช้งาน CPU, หน่วยความจำ, I/O, และเครือข่าย รวมถึงการปรับแต่งการตั้งค่าระบบไฟล์และโปรเซสจะช่วยเพิ่มประสิทธิภาพและทำให้ระบบทำงานได้ดีขึ้น