Chuyển tới nội dung chính

Phương pháp benchmark và kết quả gốc

Các con số trong Công cụ tính tài nguyên không phải là phỏng đoán. Chúng được đo trên một bản cài HiTechCloud thực tế, tải đến số lượng tài khoản thật và đo bằng các công cụ Linux tiêu chuẩn. Trang này mô tả cách chạy thử nghiệm và kết quả thu được, để bạn có thể tự kiểm chứng các giả định.

Số liệu theo từng tài khoản dưới đây được đo trên một phiên bản HiTechCloud trước đây. Phiên bản hiện tại chạy mỗi dịch vụ (web server, PHP-FPM, MariaDB, mail, DNS) một lần trên máy chủ và cấp cho mỗi tài khoản một PHP-FPM pool, một system user và quota riêng, nên dùng chung tài nguyên giữa các tài khoản nhiều hơn phiên bản đã đo. Hãy xem công cụ tính là một ước tính thận trọng. Kết quả đo lại trên phiên bản hiện tại sẽ thay thế các số liệu trên trang này.

Môi trường thử nghiệm

  • VPS: AltusHost VM-4: 8 core, 9GB RAM
  • Giấy phép Enterprise, không bật các dịch vụ cao cấp (không có máy chủ mail, FTP, DNS)
  • Bản cài HiTechCloud mới, chưa có tài khoản nào

Cách chạy thử nghiệm

  1. Cài mới HiTechCloud trên VPS nêu trên.
  2. Chạy bộ benchmark tự động (hitechcloud-tests max-users), bộ này sẽ:
    • Tạo các tài khoản hosting lần lượt từng tài khoản, mỗi tài khoản dùng gói Standard (giới hạn 2 CPU core / 2GB RAM).
    • Bật 5 dịch vụ cho mỗi tài khoản: MariaDB, Apache, PHP 8.5, Cron, Memcached.
    • Chờ mọi dịch vụ của tài khoản báo đã khởi động rồi mới tạo tài khoản tiếp theo, để không bao giờ tạo tài khoản nhanh hơn khả năng khởi động của máy chủ.
  3. Để máy chủ nhàn rỗi 1 giờ sau khi tạo tài khoản cuối cùng (không có lưu lượng giả lập).
  4. Đo mức sử dụng theo từng tài khoản và toàn hệ thống bằng các lệnh bên dưới.

Tự chạy thử nghiệm

Mọi quản trị viên đều có thể lặp lại thử nghiệm này trên một VPS thử nghiệm.

Cài mới (xem công cụ tạo lệnh cài đặt để biết các tùy chọn khác):

bash <(curl -sSL https://hitechcloud.org/) --key=enterprise-xxxx

Cài công cụ hitechcloud-tests (bộ phận hỗ trợ của chúng tôi có thể gửi bản build mới nhất), sau đó chạy benchmark tạo tài khoản:

hitechcloud-tests max-users

Để máy chủ nhàn rỗi khoảng một giờ, sau đó thu thập mức sử dụng theo từng tài khoản (mỗi tài khoản chạy trong một systemd slice riêng) và của toàn hệ thống:

hitechcloudcli user-list
systemd-cgtop --depth=3 --iterations=1
du -sh /home
free -mh
df -h /
uptime
vmstat 1 5

Dung lượng ổ đĩa

  • Mỗi tài khoản tăng thêm: khoảng 100 MB (tệp và cấu hình của tài khoản). Mỗi web server, phiên bản PHP và hệ quản trị cơ sở dữ liệu chỉ được cài một lần trên máy chủ và dùng chung cho mọi tài khoản, nên chỉ được tính một lần, không tính theo tài khoản.

Mức sử dụng RAM

Tài khoản trống/nhàn rỗi (chưa có dịch vụ hay tên miền): khoảng 15MB RAM.

Tài khoản chạy 5 dịch vụ, nhàn rỗi 1 giờ, lấy mẫu trên các tài khoản thử nghiệm:

user: testhdcw6lom   memory used: 182.8M   cpu: 0.1 cores (pct: 5)
user: test8z2c9li0    memory used: 96.2M    cpu: 0.1 cores (pct: 9)
user: testyldvawbz   memory used: 176.6M   cpu: 0.0 cores (pct: 4)
user: testm420v4mo   memory used: 189.6M   cpu: 0.0 cores (pct: 3)
user: testdk4e6qcb   memory used: 180.8M   cpu: 0.1 cores (pct: 5)
user: testns1hzu92   memory used: 114.2M   cpu: 0.0 cores (pct: 4)
user: test16bl1nh3   memory used: 192.6M   cpu: 0.1 cores (pct: 5)
user: testnpz6ktcj   memory used: 26.3M    cpu: 0.0 cores (pct: 0)
user: testkm20itbn   memory used: 23.9M    cpu: 0.0 cores (pct: 0)
user: test2yv96x7q   memory used: 23.7M    cpu: 0.0 cores (pct: 0)
user: testkwzwlkok   memory used: 24.2M    cpu: 0.0 cores (pct: 0)
user: testybg395dc   memory used: 24.1M    cpu: 0.0 cores (pct: 0)
user: testy02m4ux5   memory used: 74.5M    cpu: 0.0 cores (pct: 4)
user: testh7xjd0gv   memory used: 78.4M    cpu: 0.1 cores (pct: 5)
user: test9xjhqukr   memory used: 89.4M    cpu: 0.1 cores (pct: 6)
user: testrbgigc7e   memory used: 191.6M   cpu: 0.0 cores (pct: 4)
user: testu0xdlajh   memory used: 193.3M   cpu: 0.1 cores (pct: 8)
user: testajuhx8yf   memory used: 193.4M   cpu: 0.0 cores (pct: 4)

Tổng cộng 18 tài khoản, khoảng 2,03 GB RAM, trung bình khoảng 115MB mỗi tài khoản. Các tài khoản mới chưa có website chỉ dùng khoảng 24MB; tài khoản có website đang chạy dùng khoảng 180-203MB.

Các dịch vụ hệ thống dùng chung (cơ sở dữ liệu, bộ nhớ đệm, front end, giao diện panel, phpMyAdmin): free -mh cho thấy 2,9GB đã dùng trên toàn hệ thống so với khoảng 2,03GB của các tài khoản trên, nên còn lại khoảng 0,87GB RAM cho tất cả dịch vụ dùng chung. Đó là lý do mức nền hệ thống trong công cụ tính được đặt thấp và được xem là mức sàn, không phải mức trần đã đo.

Mức sử dụng CPU thực tế (toàn hệ thống)

vmstat 1 5, lấy mẫu khoảng 6 giờ sau khi tạo tài khoản cuối cùng, khi cả 20 tài khoản đều nhàn rỗi:

procs -----------memory---------- ---swap-- -----io---- -system-- -------cpu-------
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st gu
27  1 1045664 489412 269500 5809848    1   33    85 50498 72510  132 39 42 17  2  0  0
25  1 1045664 497804 269500 5809996    0    0     0 49276 76445 110036 42 43 13  2  0  0
12  0 1045664 499536 269500 5814108    0    0     0 113760 78239 103005 37 41 15  6  0  0
17  1 1045664 455716 269500 5814112    0    0     0 49224 75054 107971 40 45 14  2  0  0
14  2 1045664 472212 269500 5814112    0    0     0 48312 75814 109682 41 43 14  2  0  0

b (số tiến trình chờ I/O) chỉ ở mức 0-2, nên đây không phải tình trạng tranh chấp ổ đĩa. r (số tiến trình chờ CPU) ở mức 12-27 trên máy 8 core, và us+sy trung bình khoảng 82,6% CPU bận, với sy (thời gian kernel) gần bằng us (thời gian tiến trình) và 72 nghìn - 110 nghìn lần chuyển ngữ cảnh mỗi giây. Số liệu theo từng tài khoản không bao gồm chi phí kernel và lập lịch này, nên chi phí CPU thực tế của mỗi tài khoản được tính từ mức sử dụng toàn hệ thống:

busy cores  = (us% + sy%) × 8 cores       = 0.826 × 8   ≈ 6.6 cores
per user    = (busy cores − system baseline) ÷ 20 users
            = (6.6 − 1.5) ÷ 20             ≈ 0.25 cores/user

Khoảng 0,25 core mỗi tài khoản là con số công cụ tính dùng để ước tính CPU khi nhàn rỗi.

Thử nghiệm quy mô

  • 15 tài khoản × 5 dịch vụ: chạy không gặp vấn đề nào trên VPS 8 core/9GB.
  • 20 tài khoản × 5 dịch vụ, tất cả dùng gói Standard (giới hạn 2 CPU / 2GB RAM mỗi tài khoản): tổng hạn mức 40 core / 40GB RAM được bán vượt trên máy 8 core/9GB.
  • Load average của uptime duy trì ở mức 13,48-24,45 trong nhiều giờ, kể cả lần kiểm tra lại gần 6 giờ sau khi tạo xong tài khoản, phù hợp với khoảng 6,6 core bận đã đo ở trên.
  • free -mh với 20 tài khoản: 2,9GiB đã dùng / 8,7GiB tổng, 454MB trống, 5,8GiB cho buff/cache.
  • df -h: 22GB đã dùng / 99GB tổng (24%).