sysbench là một bộ công cụ chuẩn cho phép bạn nhanh chóng có được ấn tượng về hiệu suất hệ thống, điều này rất quan trọng nếu bạn dự định chạy cơ sở dữ liệu dưới tải nặng. Bài viết này giải thích cách đánh giá hiệu suất CPU, IO tệp và MySQL của bạn bằng sysbench.
Trên CentOS và Fedora, có thể cài đặt từ kho lưu trữ EPEL.
Thêm kho lưu trữ EPEL:
Sau đó cài đặt sysbench bằng yum:
Xem tổng quan về các tùy chọn sysbench
Xem
để tìm hiểu thêm về các tham số của nó.
Bây giờ tôi sẽ thực hiện ba bài kiểm tra cơ bản đơn giản để cho bạn biết thêm về hiệu suất CPU, hiệu suất IO tệp và hiệu suất MySQL của bạn.
Bạn thấy rất nhiều số, quan trọng nhất là tổng thời gian:
totaltime:23.8724s
Tất nhiên, bạn phải so sánh các điểm chuẩn trên nhiều hệ thống để biết những con số này có giá trị gì.
Sau đó, chúng ta có thể chạy điểm chuẩn:
Con số quan trọng là giá trị Kb/giây:
Read9.375MbWritten6.25MbTotaltransferred15.625Mb(53.316Kb/giây)
Sau khi đánh giá chuẩn, bạn có thể xóa tệp kiểm tra 150GB khỏi hệ thống:
Thay thế từyourrootsqlpassword bằng mật khẩu gốc MySQL của bạn trong lệnh trên. Thực hiện tương tự trong các lệnh tiếp theo.
Sau đó, bạn có thể chạy chuẩn MySQL như sau:
Con số quan trọng là giá trị giao dịch mỗi giây:
transactions:160990(2683.06persec.)
Để dọn dẹp hệ thống sau đó (tức là xóa bảng kiểm tra), hãy chạy:
1 Cài đặt sysbench
Trên Debian/Ubuntu, sysbench có thể được cài đặt như sau:
Mã:
sudo apt-get install sysbench
Thêm kho lưu trữ EPEL:
Mã:
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*
yum -y install epel-release
yum -y update
Mã:
yum install sysbench
Xem
Mã:
man sysbench
Bây giờ tôi sẽ thực hiện ba bài kiểm tra cơ bản đơn giản để cho bạn biết thêm về hiệu suất CPU, hiệu suất IO tệp và hiệu suất MySQL của bạn.
2 Điểm chuẩn CPU
Bạn có thể đánh giá hiệu suất CPU của mình như sau:
Mã:
sysbench --test=cpu --cpu-max-prime=20000 run
Mã:
root@server1:~#sysbench--test=cpu--cpu-max-prime=20000run
sysbench0.4.12:multi-threadedsystemevaluationbenchmark
Chạy thử nghiệm với các tùy chọn sau:
Số luồng:1
Đang thực hiện CPUperformancebenchmark
Luồng đã bắt đầu!
Xong.
Số lượng luồng tối đa đã được kiểm tra trong CPUtest:20000
Tổng kết thực thi thử nghiệm:
Tổng thời gian:23,8724 giây
Tổng số sự kiện:10000
Tổng thời gian thực thi sự kiện:23,8716
Thống kê theo yêu cầu:
Tối thiểu:2,31ms
Trung bình:2,39ms
Tối đa:6,39ms
Xấp xỉ 95%:2,44ms
Công bằng luồng:
Sự kiện (trung bình/độ lệch chuẩn):10000,0000/0,00
Thời gian thực thi (trung bình/độ lệch chuẩn):23,8716/0,00
root@server1:~#
totaltime:23.8724s
Tất nhiên, bạn phải so sánh các điểm chuẩn trên nhiều hệ thống để biết những con số này có giá trị gì.
3 Điểm chuẩn IO tệp
Để đo hiệu suất IO tệp, trước tiên chúng ta cần tạo một tệp thử nghiệm lớn hơn nhiều so với RAM của bạn (vì nếu không, hệ thống sẽ sử dụng RAM để lưu trữ đệm, làm thay đổi kết quả điểm chuẩn) - 150 GB là một giá trị tốt:
Mã:
sysbench --test=fileio --file-total-size=150G chuẩn bị
Mã:
sysbench --test=fileio --file-total-size=150G --file-test-mode=rndrw --init-rng=on --max-time=300 --max-requests=0 chạy
Mã:
root@server1:~#sysbench--test=fileio--file-total-size=150G--file-test-mode=rndrw--init-rng=on--max-time=300--max-requests=0run
sysbench:/usr/lib/libmysqlclient.so.18:noversioninformationavailable(requiredbysysbench)
sysbench0.4.12:multi-threadedsystemevaluationbenchmark
Chạy thử nghiệm với các tùy chọn sau:
Số luồng: 1
Đang khởi tạo trình tạo số ngẫu nhiên từ bộ đếm thời gian.
Extrafileopenflags:0
128 tệp, 1,1719Gb/mỗi
150Gb tổng kích thước tệp
Kích thước khối16Kb
Số lượng yêu cầu ngẫu nhiên cho randomIO:0
Tỷ lệ đọc/ghi cho randomIOtest kết hợp:1,50
PeriodicFSYNC enabled, gọi fsync() mỗi 100 yêu cầu.
Gọi fsync() vào cuối bài kiểm tra, Enabled.
Sử dụng synchronizeousI/Omode
Thực hiện randomr/wtest
Luồng đã bắt đầu!
Đã vượt quá giới hạn thời gian, đang thoát...
Xong.
Các hoạt động được thực hiện: 600Đọc, 400Ghi, 1186Khác=2186Tổng cộng
Đọc9,375MbĐã ghi6,25MbTổng số đã truyền15,625Mb(53,316Kb/giây)
3,33Yêu cầu/giâyđã thực hiện
Tóm tắt các hoạt động thử nghiệm:
Tổng thời gian:300,0975 giây
Tổng số sự kiện:1000
Tổng thời gian thực hiện sự kiện:158,7611
Thống kê theo yêu cầu:
Tối thiểu:0,01ms
Trung bình:158,76ms
Tối đa:2596,96ms
Xấp xỉ 95Phần trăm:482,29ms
Threadsfairness:
events(avg/stddev):1000.0000/0.00
executiontime(avg/stddev):158.7611/0.00
root@server1:~#
Read9.375MbWritten6.25MbTotaltransferred15.625Mb(53.316Kb/giây)
Sau khi đánh giá chuẩn, bạn có thể xóa tệp kiểm tra 150GB khỏi hệ thống:
Mã:
sysbench --test=fileio --file-total-size=150G cleanup
4 MySQL Benchmark
Để đo hiệu suất MySQL, trước tiên chúng ta tạo một bảng thử nghiệm trong cơ sở dữ liệu test với 1.000.000 hàng dữ liệu:
Mã:
sysbench --test=oltp --oltp-table-size=1000000--db-driver=mysql --mysql-db=test--mysql-user=root --mysql-password=yourrootsqlpassword prepare
Mã:
root@server1:~# sysbench --test=oltp --oltp-table-size=1000000--db-driver=mysql --mysql-db=test --mysql-user=root --mysql-password=yourrootsqlpassword prepare
sysbench 0.4.12: chuẩn đánh giá hệ thống đa luồng
Mã:
Không có trình điều khiển DB nào được chỉ định, sử dụng mysql
Đang tạo bảng 'sbtest'...
Đang tạo 1000000 bản ghi trong bảng 'sbtest'...
root@server1:~#
Sau đó, bạn có thể chạy chuẩn MySQL như sau:
Mã:
sysbench --test=oltp --oltp-table-size=1000000--db-driver=mysql --mysql-db=test --mysql-user=root --mysql-password=yourrootsqlpassword --max-time=60 --oltp-read-only=on --max-requests=0 --num-threads=8 run
Mã:
root@server1:~#sysbench--test=oltp--oltp-table-size=1000000--db-driver=mysql --mysql-db=test--mysql-user=root--mysql-password=yourrootsqlpassword--max-time=60--oltp-read-only=on--max-requests=0--num-threads=8run
sysbench0.4.12:multi-threadedsystemevaluationbenchmark
NoDBdrivers specified, usingmysql
Runthetestwithfollowingoptions:
Numberofthreads:8
Thực hiện kiểm tra OLTP.
Chạy kiểm tra OLTP hỗn hợp
Thực hiện kiểm tra chỉ đọc
Sử dụng Specialdistribution (12 lần lặp, 1% giá trị được trả về trong 75% trường hợp)
Sử dụng "BEGIN" để bắt đầu giao dịch
Sử dụng auto_incontheidcolumn
Chuỗi đã bắt đầu!
Đã vượt quá giới hạn thời gian, đang thoát...
(tin nhắn cuối cùng được lặp lại 7 lần)
Xong.
OLTPteststatistics:
queriesperformed:
read:2253860
write:0
other:321980
total:2575840
transactions:160990(2683.06persec.)
deadlocks:0(0.00persec.)
read/writerequests:2253860(37562.81persec.)
otheroperations:321980(5366.12persec.)
Tổng kết thực hiện thử nghiệm:
Tổng thời gian:60,0024 giây
Tổng số sự kiện:160990
Tổng thời gian thực hiện sự kiện:479,3419
Thống kê theo yêu cầu:
Tối thiểu:0,81ms
Trung bình:2,98ms
Tối đa:3283,40ms
Xấp xỉ 95%:4,62ms
Công bằng luồng:
Sự kiện (trung bình/độ lệch chuẩn):20123,7500/63,52
Thời gian thực hiện (trung bình/độ lệch chuẩn):59,9177/0,00
root@server1:~#
transactions:160990(2683.06persec.)
Để dọn dẹp hệ thống sau đó (tức là xóa bảng kiểm tra), hãy chạy:
Mã:
sysbench --test=oltp--db-driver=mysql --mysql-db=test --mysql-user=root --mysql-password=yourrootsqlpassword cleanup
5 Liên kết
- sysbench: http://sysbench.sourceforge.net/