Tôi sắp thiết lập một máy chủ cơ sở dữ liệu (MySQL) trong thùng chứa OpenVZ và tôi đã tự hỏi tôi nên gán bao nhiêu CPU cho nó. Tôi quyết định điểm chuẩn nó. Tôi đã so sánh hai bản phân phối OS / MySQL và kiểm tra cách chúng hoạt động với CPU 1, 2, 3 và 4.
Cấu hình phần mềm đầu tiên là:
- Phiên bản CentOS 6.5 (Cuối cùng)
- mysql Ver 14,14 Phân phối 5.1.71, cho redhat-linux-gnu (x86_64) bằng cách sử dụng readline 5.1
Thư hai:
- Debian GNU / Linux 7 \ n \ l
- mysql Ver 14,14 Phân phối 5.5.31, cho debian-linux-gnu (x86_64) bằng cách sử dụng readline 6.2
Cả hai đều chạy trên cùng một kernel - 2.6.32-openvz-042stab083.2-amd64 # 1 SMP Thứ Sáu ngày 8 tháng 11 17:59:25 MSK 2013 x86_64 GNU / Linux.
Tất cả phần mềm đã được cài đặt từ các gói và được sử dụng ngoài hộp mà không cần chỉnh sửa cấu hình tùy chỉnh.
Phần cứng: RAM 6GB, CPU 1-4 3,5 GHz.
Để đo điểm chuẩn, tôi đã sử dụng sysbench với kịch bản sau:
sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=test --mysql-user=root --db-driver=mysql --mysql-password=d prepare
sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=test --mysql-user=root --db-driver=mysql --mysql-password=d --max-time=60 --oltp-read-only=on --max-requests=0 --num-threads=8 run
Trong cả hai trường hợp, động cơ của bảng là InnoDB.
Đầu ra tôi đang xem là số lượng giao dịch mỗi giây. Kết quả khá ổn định - sai số nhỏ hơn 1%.
Kết quả rất tốt và được mong đợi cho CentOS / MySQL5.1, nhưng rất lạ đối với Debian / MySQL5.5:
Như bạn có thể thấy, MySQL5.5 trên Debian không tận dụng đúng cách nhiều CPU. Mặc dù hiệu năng với 2 CPU cao hơn so với 1, nhưng rõ ràng là thấp hơn so với trên CentOS / MySQL5.1. Hơn nữa, nó đi xuống khi chúng tôi thêm nhiều CPU vào đầu 2, điều này thực sự kỳ lạ.
Ai đó có thể vui lòng giải thích những gì đang xảy ra ở đó? Tại sao trên Trái đất MySQL sẽ hoạt động kém hơn khi chúng ta thêm CPU?