Tối ưu hóa cấu hình hệ thống cho node Filecoin

1. Điều chỉnh giới hạn tài nguyên hệ thống (Ulimit)

Trong quá trình vận hành node Filecoin, đặc biệt là khi lotus daemon thực hiện đồng bộ chuỗi hoặc tham gia quá trình Proof of SpaceTime, lỗi "too many open files" thường xuyên xảy ra, khiến tiến trình bị dừng đột ngột. Khi số lượng sector tăng lên, nhu cầu xử lý tệp tin đồng thời cũng gia tăng. Để giải quyết vấn đề này, cần nâng cao giới hạn tệp tin được mở (file descriptors).

Giá trị mặc định của hệ thống thường là 1024, nhưng đối với các node lớn, nên cấu hình mức 1048576. Để áp dụng cấu hình này vĩnh viễn, cần thực hiện chỉnh sửa tại nhiều cấp độ:

Cấp độ Kernel (System-wide):

echo 'fs.file-max = 1048576' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

Cấp độ Người dùng (User limits):

sudo bash -c 'cat >> /etc/security/limits.conf <<EOF
* soft nofile 1048576
* hard nofile 1048576
root soft nofile 1048576
root hard nofile 1048576
EOF'
</code>

Cấp độ Systemd:

sudo sed -i 's/#DefaultLimitNOFILE=.*/DefaultLimitNOFILE=1048576/' /etc/systemd/system.conf
sudo systemctl daemon-reexec

Tối ưu hóa kết nối mạng:

Nếu máy chủ phục vụ các kết nối mạng đồng thời cao, cần tăng giới hạn hàng đợi socket:

echo 'net.core.somaxconn = 65535' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

Lưu ý: Các thay đổi trên sẽ có hiệu lực sau khi khởi động lại hệ thống.

2. Giữ ổn định cấu hình Soft RAID sau khi khởi động

Việc lựa chọn giữa Hard RAID và Soft RAID phụ thuộc vào tài nguyên phần cứng. Hard RAID tốn ít tài nguyên CPU nhưng bộ nhớ đệm (cache) thường hạn chế (512MB - 1GB). Ngược lại, Soft RAID sử dụng CPU để xử lý nhưng có thể tận dụng toàn bộ bộ nhớ RAM của hệ thống làm cache, mang lại hiệu suất đọc ghi cao hơn nếu CPU và RAM dư dả.

Một vấn đề phổ biến khi dùng Soft RAID (mdadm) là cấu hình mảng đĩa biến mất sau khi reboot, dẫn đến mất dữ liệu. Nguyên nhân là do thông tin mảng đĩa chưa được tự động tải khi khởi động.

Giải pháp là quét và lưu lại cấu hình RAID vào tệp thiết lập:

sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf

Tệp cấu hình sẽ chứa dòng tương tự như sau:

ARRAY /dev/md0 metadata=1.2 name=hostname:0 UUID=xxxxxxxx:xxxx:xxxx:xxxx:xxxxxxxxxxxx

Dưới đây là ví dụ lệnh để tạo mảng RAID 0 với hai ổ đĩa:

sudo mdadm --create /dev/md0 --verbose --level=0 --raid-devices=2 /dev/sda /dev/sdb

Trong đó, --level=0 tương ứng với RAID 0, và --raid-devices chỉ định số lượng ổ đĩa hoặc phân vùng tham gia.

3. Vô hiệu hóa NUMA để cân bằng bộ nhớ

Filecoin có nhu cầu sử dụng bộ nhớ rất lớn. NUMA (Non-Uniform Memory Access) được bật mặc định trên Linux sẽ ưu tiên cấp phát bộ nhớ物理 tại node CPU đang chạy tiến trình. Mặc dù điều này giảm độ trễ truy cập, nhưng trong các ứng dụng tiêu thụ nhiều RAM như Filecoin, nó có thể dẫn đến việc một node CPU hết RAM và buộc phải dùng Swap, trong khi node khác vẫn còn RAM dư. Việc sử dụng Swap sẽ làm giảm hiệu suất xuống đáng kể.

Để kiểm tra trạng thái NUMA, cài đặt và sử dụng công cụ numactl:

sudo apt-get install numactl
numastat

Nếu kết quả chỉ hiển thị một cột node0, hệ thống có thể không hoạt động ở chế độ NUMA hoặc chỉ có một socket. Tuy nhiên, với các máy chủ sử dụng CPU dòng Xeon (ví dụ E5-2684 V4), bạn sẽ thấy nhiều node (node0, node1). Việc truy cập bộ nhớ cross-node sẽ làm giảm hiệu năng, do đó nên tắt NUMA.

Cách tắt NUMA bằng cách sửa cấu hình Grub (Khuyên dùng):

Trên Ubuntu, chỉnh sửa file /etc/default/grub, tìm tham số GRUB_CMDLINE_LINUX_DEFAULT và thêm numa=off:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash numa=off"

Sau đó cập nhật lại cấu hình grub và reboot:

sudo update-grub
sudo reboot

Kiểm tra lại bằng lệnh numastat. Nếu chỉ còn node0, việc tắt NUMA đã thành công.

4. Đặt CPU sang chế độ Hiệu suất cao (Performance)

Để tiết kiệm điện năng, Ubuntu thường đặt CPU ở chế độ powersave. Tuy nhiên, điều này hạn chế tốc độ xử lý tối đa của CPU, ảnh hưởng đến tốc độ seal và prove của Filecoin. Bạn nên chuyển sang chế độ performance.

Sử dụng gói công cụ cpufrequtils để điều chỉnh:

sudo apt-get install cpufrequtils

Kiểm tra trạng thái hiện tại:

cpufreq-info

Thay đổi governor sang performance:

sudo cpufreq-set -g performance

Thẻ: Filecoin linux System Administration raid NUMA

Đăng vào ngày 12 tháng 6 lúc 07:07