CPU xung cao hay nhiều nhân: chọn VPS thế nào cho đúng việc

Chia sẻ bài viết

Mục lục

Trả lời nhanh: Chọn theo tính chất công việc. PHP xử lý mỗi lượt truy cập trên một nhân, mỗi truy vấn MySQL cũng chạy trên một luồng, Redis thì đơn luồng theo thiết kế. Với những thứ đó xung nhịp quyết định trực tiếp thời gian phản hồi, thêm nhân không làm một truy vấn chạy nhanh hơn. Ngược lại encode video, chạy nhiều container hay phục vụ hàng trăm người truy cập cùng lúc thì số nhân mới là yếu tố chính. Cấu hình lý tưởng là có cả hai: nhiều nhân mà vẫn giữ xung nền cao.

Hầu hết bảng giá VPS khoe số nhân vì con số đó dễ so sánh. Nhưng nếu website của bạn chạy PHP hay dùng MySQL, thứ bạn cần có thể không phải là thêm nhân mà là nhân chạy nhanh hơn.

Tóm tắt nhanh
  • PHP, một truy vấn SQL và Redis đều chạy đơn luồng, xung nhịp quyết định trực tiếp thời gian phản hồi.
  • Nhiều nhân giúp phục vụ nhiều việc cùng lúc, không làm một việc chạy nhanh hơn.
  • Chênh từ 2.1GHz lên 2.7GHz là khoảng 28 phần trăm, phản ánh gần như trực tiếp vào thời gian xử lý đơn luồng.
  • Trước khi đổi phần cứng, hãy kiểm tra chỉ mục database, đó thường là nguyên nhân thật.

Vì sao đơn luồng lại quan trọng đến vậy

Khi một người mở trang web PHP, máy chủ giao toàn bộ việc dựng trang đó cho một nhân duy nhất. Nhân đó chạy hết mã nguồn, gọi database, ghép giao diện rồi trả kết quả. Nếu nhân chạy chậm, trang chậm, dù máy còn hai mươi nhân khác đang rảnh.

MySQL cũng vậy. Mỗi kết nối được phục vụ bởi một luồng riêng, và một truy vấn phức tạp có phép nối nhiều bảng hay sắp xếp lớn chỉ nhanh bằng đúng tốc độ của một nhân. Thêm nhân giúp phục vụ được nhiều kết nối hơn, nhưng không rút ngắn được truy vấn nặng nhất của bạn.

Bảng phân loại theo tác vụ

Công việcQuyết định bởiGiải thích
WordPress, Laravel, MagentoXung nhịpMỗi lượt truy cập chạy trên một nhân
Một truy vấn MySQL hoặc PostgreSQLXung nhịpMỗi truy vấn chạy trên một luồng
RedisXung nhịpĐơn luồng theo thiết kế
Build npm, composer, webpackXung nhịp là chínhNhiều bước trong chuỗi chạy tuần tự
Hàng trăm người truy cập cùng lúcSố nhânMỗi lượt chiếm một nhân, hết nhân thì phải xếp hàng
Docker nhiều containerSố nhânNhiều tiến trình độc lập chạy song song
Encode video, nén dữ liệu lớnSố nhânCông việc chia nhỏ được nên càng nhiều nhân càng nhanh

Kiểm tra xem mình đang thiếu gì

Chạy lệnh sau vào giờ cao điểm và quan sát:

top -1

Nhấn phím 1 để hiện từng nhân riêng. Có hai kịch bản:

  • Một nhân chạm 100 phần trăm trong khi các nhân khác gần như rảnh: bạn đang bị giới hạn bởi tốc độ một nhân. Thêm nhân vô ích, cần xung cao hơn hoặc cần tối ưu lại mã nguồn.
  • Tất cả các nhân đều bận: bạn thật sự thiếu nhân, nâng số nhân sẽ có tác dụng.

Nói thẳng một điều: rất nhiều trường hợp than máy yếu hoá ra là do truy vấn database thiếu chỉ mục. Một câu lệnh EXPLAIN đặt trước truy vấn chậm sẽ cho biết nó có quét toàn bảng hay không. Sửa chỉ mục nhiều khi hiệu quả hơn mọi khoản nâng cấp phần cứng.

Câu hỏi thường gặp

CPU xung cao có lợi gì so với nhiều nhân xung thấp?

Với tác vụ đơn luồng như PHP dựng trang, một truy vấn MySQL hay Redis thì xung cao rút ngắn trực tiếp thời gian phản hồi. Nhiều nhân chỉ giúp làm được nhiều việc song song hơn chứ không làm một việc nhanh hơn.

Chênh lệch xung ảnh hưởng bao nhiêu phần trăm?

Với khối lượng công việc đơn luồng, chênh lệch xung phản ánh gần như trực tiếp. Từ 2.1GHz lên 2.7GHz là khoảng 28 phần trăm, chưa kể phần lợi thêm từ cache lớn hơn và kiến trúc mới hơn.

Website WordPress nên ưu tiên gì?

Ưu tiên xung nhịp và ổ đĩa nhanh trước, vì PHP chạy đơn luồng và WordPress đọc ghi database rất nhiều. Số nhân chỉ cần tăng khi lượng truy cập đồng thời lớn.

Làm sao biết mình bị giới hạn bởi một nhân?

Chạy lệnh top rồi nhấn phím 1 để xem từng nhân. Nếu một nhân chạm 100 phần trăm còn các nhân khác rảnh thì đó chính là dấu hiệu.

Hạ tầng NVMe Enterprise của TND
VPS ổ Enterprise U.2 NVMe, CPU xung cao, đặt tại Việt Nam
Truy vấn SQL, PHP dựng trang, build Next.js hay đóng gói app iOS và Android: phần lớn các bước này chạy đơn luồng và đập liên tục vào ổ đĩa. Nghẽn nằm ở tốc độ đọc ghixung nhịp CPU, không phải ở việc có thật nhiều nhân. Ổ Enterprise U.2 NVMe chuẩn máy chủ chạy RAID 10 cho IOPS đọc ghi ngẫu nhiên gấp 5 đến 7 lần ổ SATA SSD, khác hẳn NVMe M.2 phổ thông. Chạy trên chip Intel Xeon Platinum dòng xung cao, backup tự động hàng tuần, bàn giao trong 5 phút.
Xem VPS ổ Enterprise U.2 NVMe, bàn giao trong 5 phút

Bài viết liên quan