Hướng dẫn cấu hình và vận hành dịch vụ A-Tune

1. Khởi động dịch vụ A-Tune

1.1 Cấu hình ổ đĩa và card mạng

Sau khi cài đặt bằng lệnh dưới đây, hệ thống sẽ tự động ghi nhận các ổ đĩa và card mạng được phát hiện vào tệp cấu hình /etc/atuned/atuned.cnf. Bạn có thể chỉnh sửa trực tiếp trong tệp này để chỉ định ổ đĩa và card mạng mong muốn.

make collector-install
make install

1.2 Khởi chạy các dịch vụ A-Tune

Thực thi các lệnh sau để khởi động dịch vụ:

sudo systemctl daemon-reload
sudo systemctl start atuned
sudo systemctl start atune-engine

Kiểm tra trạng thái hoạt động của dịch vụ:

sudo systemctl status atuned
sudo systemctl status atune-engine

1.3 Lệnh quản lý atune-adm

  • atune-adm list: Liệt kê các hồ sơ (profile) mà hệ thống hỗ trợ và hồ sơ đang được kích hoạt.
  • atune-adm profile [tên]: Kích hoạt một chiến lược tối ưu cụ thể.
  • atune-adm analysis [options]: Tối ưu tĩnh trực tuyến, thu thập thông tin hệ thống theo thời gian thực để nhận dạng loại tải và tự động tối ưu.
  • atune-adm tuning [OPTIONS] <PROJECT_YAML>: Tối ưu động ngoại tuyến, sử dụng tệp dự án được chỉ định để tìm kiếm không gian tham số động và tìm ra giải pháp tối ưu cho cấu hình hiện tại.

2. Ví dụ về tối ưu động ngoại tuyến

Ví dụ dưới đây sử dụng trình biên dịch gcc trong thư mục A-Tune/examples/tuning.

2.1 Chuẩn bị môi trường

sh prepare.sh

2.2 Tải chương trình kiểm tra băng thông bộ nhớ stream.c

wget http://www.cs.virginia.edu/stream/FTP/Code/stream.c

2.3 Thực hiện tối ưu

atune-adm tuning --project gcc_compile --detail gcc_compile_client.yaml

Kết quả: Băng thông bộ nhớ tăng 121%, kích thước tệp thực thi sau biên dịch giảm 17%.

2.4 Lưu kết quả

atune-adm tuning --restore --project gcc_compile

3. Cấu trúc tệp tin trong tối ưu động ngoại tuyến

Tối ưu động ngoại tuyến yêu cầu ba tệp đầu vào: client.yaml, server.yamlbenchmark.

  • client.yaml: Lưu trên máy khách, chứa các chỉ số đánh giá cho quá trình tối ưu.
  • server.yaml: Lưu trên máy chủ, chứa các tham số có thể điều chỉnh.
  • benchmark: Lưu trên máy khách, thực thi tệp này để thu thập giá trị cụ thể của các chỉ số đánh giá.

Lấy ví dụ tối ưu trình biên dịch gcc, giải thích chi tiết ba tệp này.

3.1 Tệp client.yaml

Nội dung bao gồm:

  • Thuật toán tối ưu (dòng 2)
  • Số lần lặp (dòng 3)
  • Số lần lặp ngẫu nhiên (dòng 4)
  • Lệnh thực thi benchmark (dòng 6)
  • Thông tin chỉ số đánh giá 1 (dòng 8-13)
  • Thông tin chỉ số đánh giá 2 (dòng 14 trở đi)

Ngoài ra, có thể thêm mục chọn tham số trong client.yaml để thu hẹp không gian tham số trước khi tối ưu chính thức. Cách thực hiện bằng cách thêm các tham số sau:

feature_filter_engine: <thuật toán chọn tham số>
feature_filter_cycle: <số vòng chọn tham số>
feature_filter_iters: <số lần lặp chọn tham số>
feature_filter_count: <số tham số được chọn mỗi vòng>
split_count: <số tham số được chọn đều trong khoảng giá trị điều chỉnh>

3.2 Tệp server.yaml

Nội dung gồm lệnh khởi động ứng dụng (dòng 3), lệnh dừng ứng dụng (dòng 4) và các tham số có thể điều chỉnh (dòng 5 trở đi).

3.3 Tệp benchmark

Benchmark là tệp thực thi dùng để đo lường các chỉ số đánh giá theo lệnh được cung cấp trong client.yaml.

Thực hiện tối ưu và lưu kết quả:

atune-adm tuning --project <TÊN_DỰ_ÁN> --detail <client.yaml>
atune-adm tuning --restore --project <TÊN_DỰ_ÁN>

4. Hướng dẫn sử dụng A-Tune

4.1 Tổng quan

Lệnh atune-adm hỗ trợ tra cứu bằng atune-adm help, --help hoặc -h. Các lệnh mẫu dưới đây áp dụng cho triển khai đơn máy. Với triển khai phân tán, cần chỉ định IP máy chủ và cổng, ví dụ:

atune-adm -a 192.168.3.196 -p 60001 list

Các lệnh define, update, undefine, collection, train, upgrade không hỗ trợ thực thi từ xa.

4.2 Truy vấn loại tải

list: Xem danh sách profile hệ thống hỗ trợ và profile đang kích hoạt.

atune-adm list

4.3 Phân tích tải và tự động tối ưu

Sử dụng mô hình mặc định để nhận dạng ứng dụng mà không tự động tối ưu:

atune-adm analysis --characterization

Sử dụng mô hình mặc định và tự động tối ưu:

atune-adm analysis

Sử dụng mô hình tự huấn luyện để nhận dạng:

atune-adm analysis --model /usr/libexec/atuned/analysis/models/new-model.m

4.4 Tự định nghĩa mô hình

Quy trình định nghĩa và huấn luyện mô hình mới:

  • Bước 1: Dùng lệnh define để định nghĩa profile cho ứng dụng mới.
  • Bước 2: Dùng lệnh collection để thu thập dữ liệu hệ thống tương ứng.
  • Bước 3: Dùng lệnh train để huấn luyện mô hình.

4.4.1 define

Thêm một kịch bản ứng dụng tùy chỉnh và cấu hình tối ưu tương ứng.

Cú pháp:

atune-adm define <loại_dịch_vụ> <tên_ứng_dụng> <tên_kịch_bản> <đường_dẫn_profile>

Ví dụ:

atune-adm define test_service test_app test_scenario ./example.conf

4.4.2 collection

Thu thập thông tin tài nguyên hệ thống và trạng thái OS khi ứng dụng chạy, lưu kết quả vào tệp CSV.

Cú pháp:

atune-adm collection [TÙY_CHỌN]

Ví dụ:

atune-adm collection --filename name --interval 5 --duration 1200 --output_path /home/data --disk sda --network eth0 --app_type test_type

4.4.3 train

Huấn luyện mô hình từ dữ liệu đã thu thập. Cần ít nhất hai loại dữ liệu ứng dụng.

Cú pháp:

atune-adm train [TÙY_CHỌN]

Ví dụ:

atune-adm train --data_path /home/data --output_file /usr/libexec/atuned/analysis/models/new-model.m

4.4.4 undefine

Xóa profile tùy chỉnh.

Cú pháp:

atune-adm undefine <profile>

Ví dụ:

atune-adm undefine test_service-test_app-test_scenario

4.5 Thao tác với Profile

4.5.1 Truy vấn profile

Xem nội dung profile.

atune-adm info web-nginx-http-long-connection

4.5.2 Cập nhật profile

Cập nhật nội dung tối ưu của profile bằng tệp mới.

atune-adm update test_service-test_app-test_scenario ./new.conf

4.5.3 Kích hoạt profile

Kích hoạt profile để áp dụng cấu hình.

atune-adm profile web-nginx-http-long-connection

4.5.4 Khôi phục profile

Quay lại cấu hình mặc định ban đầu.

atune-adm rollback

4.6 Cập nhật cơ sở dữ liệu

Cập nhật cơ sở dữ liệu hệ thống.

atune-adm upgrade /đường/dẫn/new_sqlite.db

4.7 Kiểm tra thông tin hệ thống

Kiểm tra CPU, BIOS, OS, card mạng, v.v.

atune-adm check

4.8 Tự động tối ưu tham số

Sử dụng tệp dự án để tìm kiếm không gian tham số động.

atune-adm tuning [TÙY_CHỌN] <PROJECT_YAML>

Đảm bảo tệp cấu hình server.yaml đã được đặt trong /etc/atuned/tuning/ và client.yaml ở thư mục bất kỳ trên máy khách.

Ví dụ thực hiện tối ưu:

atune-adm tuning --project compress --detail compress_client.yaml

Khôi phục cấu hình ban đầu:

atune-adm tuning --restore --project compress

5. Thực hành tối ưu thuật toán nén với A-Tune

5.1 Chuẩn bị dữ liệu

cd ~/A-Tune/examples/tuning/compress/
wget http://cs.fit.edu/~mmahoney/compression/enwik8.zip
sh prepare.sh enwik8.zip

Sau khi chạy, thư mục sẽ chứa tệp enwik8.zip, thư mục enwik8, tệp prepare.sh, compress.py, compress_client.yamlcompress_server.yaml.

Kiểm tra hiệu suất cơ bản:

python3 compress.py

Kết quả hiện ra thời gian nén (~4.6 giây) và tỷ lệ nén (~2.7 lần).

5.2 Sao lưu tệp gốc

cp compress.py{,.bak}

5.3 Thực hiện tối ưu

atune-adm tuning --project compress --detail compress_client.yaml

Quá trình chạy khoảng 2 phút và đưa ra cấu hình tối ưu, thay đổi tham số compressLevel từ 1 lên 6, giúp cải thiện tỷ lệ nén.

So sánh sự khác biệt:

diff compress.py compress.py.bak

5.4 Giải thích kết quả

  • Chỉ số đánh giá (client.yaml): time (thời gian nén) và compress_ratio (tỷ lệ nén). Thời gian càng ngắn, tỷ lệ càng cao thì hiệu suất càng tốt.
  • Tham số có thể điều chỉnh (server.yaml): compressLevel (mức nén từ 1 đến 9) và compressMethod (phương pháp nén: bz2, zlib, gzip).

Thẻ: atune linux-tuning profile-management Performance-Optimization gcc-tuning

Đăng vào ngày 3 tháng 6 lúc 04:08