#server-performance

Các cấu hình được tối ưu hóa cho việc tối ưu hóa tải công việc trên máy chủ Linux

16 phút đọc - 9 tháng 6, 2026

hero section cover

Cách chọn, áp dụng và tùy chỉnh các cấu hình tối ưu cho máy chủ GPU, cơ sở dữ liệu và máy chủ Linux băng thông cao, kèm theo các ví dụ và mẹo triển khai bằng Ansible.

các cấu hình được tối ưu hóa để tối ưu hóa tải công việc của máy chủ

Các cài đặt mặc định của Linux được tối ưu hóa cho tính tương thích, chứ không phải hiệu suất. Daemon tuned cung cấp các cấu hình được định nghĩa sẵn để điều chỉnh bộ điều khiển CPU, bộ lập lịch I/O, tham số kernel và bộ đệm mạng sao cho phù hợp với một tải công việc cụ thể. Bài viết này trình bày cách các cấu hình này hoạt động, nên chọn cấu hình nào cho các vai trò máy chủ phổ biến, cũng như cách xây dựng và triển khai các cấu hình tùy chỉnh trên toàn bộ hệ thống.


 

Cách hoạt động của các cấu hình được tùy chỉnh

Một cấu hình là một thư mục nằm trong /usr/lib/tuned/profiles/ (system) hoặc /etc/tuned/profiles/ (tùy chỉnh) chứa một tuned.conf tệp cấu hình. Tệp cấu hình này nhóm các tham số theo plugin: [cpu], [disk], [sysctl], [vm], [bootloader], v.v. Khi kích hoạt một cấu hình, daemon tuned sẽ áp dụng tất cả các tham số cùng một lúc, thay vì phải chạy hàng chục lệnh sysctlsysfs lệnh thủ công.

Các cấu hình có thể kế thừa lẫn nhau thông qua chỉ thị include . Ví dụ, throughput-performance profile, ví dụ, có thể đóng vai trò là cơ sở cho một cấu hình cơ sở dữ liệu tùy chỉnh chỉ ghi đè lên vm.swappiness cài đặt Transparent Huge Pages.

tuned hoạt động ở hai chế độ. Tối ưu hóa tĩnh áp dụng cấu hình một lần khi kích hoạt và không can thiệp vào hệ thống nữa, đây là điều bạn mong muốn trên các máy chủ sản xuất, nơi tính nhất quán quan trọng hơn tiết kiệm năng lượng. Tối ưu hóa động giám sát việc sử dụng đĩa, mạng và tải trong thời gian thực và điều chỉnh cài đặt ngay lập tức. Các cấu hình hiệu suất tắt tính năng tối ưu hóa động theo mặc định để tránh gánh nặng giám sát.

Chọn cấu hình phù hợp cho khối lượng công việc của bạn

tuned cung cấp một tá cấu hình phù hợp với hầu hết các khối lượng công việc phổ biến. Hãy chọn cấu hình phù hợp với chức năng thực tế của máy chủ, thay vì để nguyên balanced cài đặt mặc định.

Tải công việcCấu hìnhChức năng
Huấn luyện và suy luận GPUaccelerator-performanceKhóa CPU ở các trạng thái C thấp, giữ độ trễ từ CPU đến GPU dưới 100µs
Cơ sở dữ liệu (Postgres, MySQL, Redis)throughput-performanceVô hiệu hóa chế độ tiết kiệm năng lượng, tối ưu hóa I/O đĩa và mạng, vô hiệu hóa Transparent Huge Pages
Mạng băng thông cao (CDN, sao chép, đường ống dữ liệu)network-throughputMở rộng bộ đệm mạng của kernel để duy trì tốc độ truyền dữ liệu băng thông cao
Các dịch vụ nhạy cảm với độ trễnetwork-latency hoặc latency-performanceCố định bộ điều khiển CPU ở chế độ performance, vô hiệu hóa các trạng thái C sâu
HPC và cụm tính toánhpc-computeNâng cao hiệu suất độ trễ thông qua tối ưu hóa NUMA và bộ nhớ
Các phiên bản VPS (hệ điều hành khách)virtual-guestGiảm mức độ hoán đổi (swappiness), tăng khả năng đọc trước trên đĩa cho I/O ảo hóa bán phần
Máy chủ hypervisor KVMvirtual-hostTối ưu hóa quá trình ghi lại trang bẩn cho các tải công việc của máy ảo
Hỗn hợp hoặc không xác địnhbalancedMặc định. Cân bằng giữa hiệu suất và hiệu quả năng lượng

Đối với các hệ thống cơ sở dữ liệu cụ thể, tuned cũng được cung cấp postgresql, mssql, và oracle các cấu hình đi sâu hơn throughput-performance bằng cách tối ưu hóa các tham số bộ nhớ chia sẻ và bộ lập lịch kernel cho các hệ thống cơ sở dữ liệu đó.

Trên các máy chủ đa ổ cắm, cấu trúc NUMA rất quan trọng. Việc truy cập bộ nhớ nút từ xa có thể chậm hơn từ hai đến ba lần so với truy cập cục bộ. Đối với các khối lượng công việc yêu cầu độ trễ thấp trên các máy hai ổ cắm, hãy vô hiệu hóa tính năng cân bằng NUMA tự động trong cấu hình và gán các quy trình vào các nút cụ thể theo cách thủ công.

Cài đặt và áp dụng cấu hình

Cài đặt tuned trên RHEL, Rocky, AlmaLinux hoặc Fedora:

dnf install tuned
systemctl enable --now tuned

Trên Debian và Ubuntu, gói phần mềm này cũng có tên là tuned và được cài đặt qua apt. Nếu power-profiles-daemon đã đang chạy, hãy ẩn nó đi để tránh xung đột:

systemctl mask --now power-profiles-daemon

Danh sách các cấu hình có sẵn, hỏi tuned xem nó đề xuất cấu hình nào cho phần cứng, áp dụng một cấu hình và kiểm tra lại:

tuned-adm list
tuned-adm recommend
tuned-adm profile throughput-performance
tuned-adm verify

Cấu hình đang hoạt động được lưu trữ trong /etc/tuned/active_profile và vẫn được duy trì sau khi khởi động lại. Để loại bỏ hoàn toàn các thiết lập tối ưu hóa và đo lường giá trị cơ sở, hãy chạy tuned-adm off.

Tạo cấu hình tùy chỉnh cho AI, ML và các tác vụ cần băng thông cao

Khi các cấu hình có sẵn đã đáp ứng được 90% yêu cầu, hãy tạo một cấu hình tùy chỉnh kế thừa từ cấu hình phù hợp nhất và ghi đè các tham số còn lại. Bắt đầu với một thư mục và tệp cấu hình:

mkdir -p /etc/tuned/ai-gpu
cat > /etc/tuned/ai-gpu/tuned.conf <<'EOF'
[main]
summary=Custom profile for GPU training with high-bandwidth networking
include=accelerator-performance
 
[cpu]
governor=performance
 
[sysctl]
kernel.numa_balancing=0
net.core.rmem_max=268435456
net.core.wmem_max=268435456
net.ipv4.tcp_rmem=4096 87380 268435456
net.ipv4.tcp_wmem=4096 65536 268435456
 
[vm]
transparent_hugepages=never
 
[bootloader]
cmdline=hugepagesz=2M hugepages=16384 <a target="_blank" rel="noopener noreferrer" href="https://en.wikipedia.org/wiki/Input%E2%80%93output_memory_management_unit">iommu</a>=pt
EOF
 
tuned-adm profile ai-gpu

Các lựa chọn quan trọng ở đây:

  • numa_balancing=0 ngăn kernel di chuyển bộ nhớ giữa các socket trong quá trình đào tạo, một nguyên nhân phổ biến gây gián đoạn trên các hệ thống GPU hai socket.
  • Tùy chọn rmem_maxtcp_rmem tăng giới hạn bộ đệm socket lên 256MB. Trên các kết nối 25G, 40G hoặc 100G giữa các nút huấn luyện, kích thước bộ đệm mặc định giới hạn thông lượng ở mức thấp hơn nhiều so với tốc độ đường truyền.
  • transparent_hugepages=never loại bỏ độ dao động độ trễ do THP gây ra cho các khung công tác như PyTorch và TensorFlow khi chúng phân bổ các tensor lớn.
  • iommu=pt đặt IOMMU vào chế độ passthrough, cần thiết cho việc passthrough GPU và NIC, đồng thời giảm tải cho DMA trên hệ thống bare-metal.

Bất kỳ thay đổi nào dưới [bootloader] đều yêu cầu khởi động lại. Sau khi kích hoạt cấu hình, hãy chạy tuned-adm verify để xác nhận các tham số thời gian chạy đã được áp dụng và kiểm tra journalctl -u tuned xem có lỗi nào không. Thực hiện đo hiệu năng trước và sau với iostat -xz, numastat, cùng với công cụ tải làm việc phù hợp (iperf3, fio, hoặc quá trình huấn luyện thực tế).

Một sự đánh đổi cần được nêu rõ: việc vô hiệu hóa các biện pháp giảm thiểu rủi ro bảo mật CPU giúp tăng hiệu suất khoảng 3-8% đối với các tải công việc trên GPU nhưng lại làm giảm hiệu suất 15-30% đối với các tải công việc có mẫu gọi hệ thống nặng. Hãy quyết định dựa trên mô hình mối đe dọa của hệ thống. Trong một cụm đào tạo chuyên dụng được bảo vệ bởi tường lửa, các tính toán thường ủng hộ việc vô hiệu hóa chúng. Trên máy chủ đa người dùng, hãy để các biện pháp này hoạt động.

Quản lý cấu hình trên toàn bộ hệ thống máy chủ

Việc áp dụng tuned bằng tay sẽ không còn khả thi khi số lượng máy chủ vượt quá một vài chiếc. Ansible xử lý vấn đề này một cách gọn gàng. Chỉ cần một playbook duy nhất là có thể cài đặt tuned, tạo các thư mục cấu hình tùy chỉnh trong /etc/tuned/ thông qua template module, đồng thời áp dụng cấu hình phù hợp cho từng nhóm trong danh sách inventory.

Ánh xạ cấu hình với các vai trò trong danh mục:

  • Các nút GPU và AI: accelerator-performance, hoặc một cấu hình tùy chỉnh kế thừa từ cấu hình đó
  • Máy chủ cơ sở dữ liệu: throughput-performance hoặc cấu hình dành riêng cho động cơ
  • Các nút CDN và edge xử lý lưu lượng băng thông cao: network-throughput
  • Máy chủ API và web phía sau bộ cân bằng tải: network-latency
  • Máy ảo VPS và KVM: virtual-guest
  • Máy chủ hypervisor: virtual-host

Sự lệch (drift) là vấn đề vận hành thực sự. Các sysctl , việc nâng cấp gói phần mềm mang theo các giá trị mặc định mới, hoặc một công cụ quản lý cấu hình khác can thiệp vào hệ thống đã được tối ưu hóa đều sẽ khiến các thiết lập lệch khỏi những gì được định nghĩa trong profile. Lên lịch chạy tác vụ Ansible tuned-adm activetuned-adm verify trên cron và gửi cảnh báo khi xảy ra lỗi. Theo dõi /var/log/tuned/tuned.log các dòng thông báo “Verification failed”.

Kết luận

tuned giúp loại bỏ phần lớn sự phỏng đoán trong việc tối ưu hóa kernel và sysctl. Các thiết lập mặc định đã đủ tốt cho mục đích sử dụng chung, và các cấu hình dành riêng cho khối lượng công việc như accelerator-performance, throughput-performance, và network-throughput giúp bạn đạt được mức tối ưu gần như hoàn toàn mà không cần viết một tệp cấu hình nào.

  • Chọn cấu hình mặc định phù hợp nhất, chạy tuned-adm verify, sau đó chạy bài kiểm tra hiệu năng
  • Tạo các cấu hình tùy chỉnh bằng cách kế thừa từ một cấu hình mặc định và chỉ ghi đè những phần bạn cần
  • Cân nhắc kỹ lưỡng về cân bằng NUMA, hugepages và kích thước bộ đệm mạng trên các hệ thống GPU và hệ thống băng thông cao
  • Triển khai bằng Ansible và kiểm tra định kỳ để phát hiện sự sai lệch

Bạn cần dung lượng máy chủ vật lý (bare-metal) với băng thông dư dả để thực sự tận dụng các thiết lập này? Hãy liên hệ với FDC để tìm hiểu về các máy chủ chuyên dụng được thiết kế dành riêng cho các tác vụ có thông lượng cao và tải công việc trên GPU.

Blog

Nổi bật trong tuần

Các bài viết khác
Hướng dẫn sử dụng iperf3: Kiểm tra tốc độ mạng trên Linux và Windows
#bandwidth#server-performance

Hướng dẫn sử dụng iperf3: Kiểm tra tốc độ mạng trên Linux và Windows

Cài đặt iperf3, thực hiện các bài kiểm tra băng thông và điều chỉnh bộ đệm TCP để có kết quả chính xác trên Linux và Windows. Bao gồm các bài kiểm tra UDP, hai chiều và 10GbE+.

10 phút đọc - 7 tháng 5, 2026

Các bài viết khác
background image

Bạn có thắc mắc hoặc cần giải pháp tùy chỉnh?

icon

Các tùy chọn linh hoạt

icon

Phạm vi toàn cầu

icon

Triển khai ngay lập tức

icon

Các tùy chọn linh hoạt

icon

Phạm vi toàn cầu

icon

Triển khai ngay lập tức