Hầu hết các nhà cung cấp đám mây phân chia dịch vụ của họ theo số lõi CPU và dung lượng RAM. Bạn có cần một máy chủ đa lõi lớn, hoặc toàn bộ đội tàu của họ không? Dưới đây là cách tiến hành đo hiệu suất trong thế giới thực của máy chủ của bạn.
Ứng dụng của bạn có cần phải quy mô hay không?
Điều rất phổ biến đối với các công ty khởi nghiệp công nghệ là bị thu hút bởi kiến trúc có khả năng mở rộng của Google, đó là xây dựng kiến trúc máy chủ của bạn theo cách mà mọi thành phần của nó có thể mở rộng để đáp ứng bất kỳ nhu cầu nào.
Điều này thật tuyệt vời, nhưng nếu bạn không gặp phải lưu lượng truy cập trong thế giới thực đó, thì có thể là quá mức cần thiết (và tốn kém hơn) để xây dựng kiến trúc có thể mở rộng với mục đích mở rộng tới một triệu người dùng .
Bạn sẽ muốn ưu tiên xây dựng một ứng dụng tốt hơn là xây dựng cơ sở hạ tầng đặc biệt. Hầu hết các ứng dụng chạy tốt đáng ngạc nhiên chỉ với một vài máy chủ tiêu chuẩn dễ quản lý. Và, nếu ứng dụng của bạn đã từng làm cho nó trở nên lớn, sự phát triển của bạn có thể sẽ diễn ra trong vài tháng, cho bạn nhiều thời gian (và tiền bạc) để làm việc trên cơ sở hạ tầng của bạn.
Kiến trúc có thể mở rộng vẫn là một điều tốt để xây dựng xung quanh, đặc biệt là trên các dịch vụ như AWS, nơi tự động hóa có thể được sử dụng để thu nhỏ và tiết kiệm tiền trong giờ cao điểm.
Bạn phải lập kế hoạch cho tải cao điểm
Điều quan trọng nhất cần ghi nhớ là bạn không lập kế hoạch cho tải trung bình, bạn đang lên kế hoạch cho tải cao điểm. Nếu máy chủ của bạn không thể xử lý tải tối đa của bạn vào giữa trưa, họ đã không phục vụ mục đích của họ. Bạn cần đảm bảo rằng bạn đang đo và hiểu được tải của máy chủ theo thời gian, thay vì chỉ xem qua việc sử dụng CPU trong một khoảnh khắc.
Kiến trúc có thể mở rộng có ích ở đây. Có thể nhanh chóng tạo ra một cá thể tại chỗ ( thường rẻ hơn nhiều ) để giảm tải cho các máy chủ chính của bạn là một mô hình thiết kế rất tốt và cho phép bạn cắt giảm đáng kể chi phí. Rốt cuộc, nếu bạn chỉ cần hai máy chủ trong vài giờ mỗi ngày, tại sao phải trả tiền để chạy nó qua đêm?
Hầu hết các nhà cung cấp điện toán đám mây lớn cũng có các giải pháp mở rộng cho các container như Docker , cho phép bạn mở rộng mọi thứ tự động vì cơ sở hạ tầng của bạn có thể được sao chép dễ dàng hơn.
Máy chủ của bạn cho hiệu suất bao nhiêu?
Đó là một câu hỏi khó trả lời chính xác; các ứng dụng và trang web của mọi người đều khác nhau và lưu trữ máy chủ của mọi người cũng khác nhau. Chúng tôi không thể cung cấp cho bạn câu trả lời chính xác về máy chủ nào phù hợp nhất với trường hợp sử dụng của bạn.
Những gì chúng tôi có thể làm là cho bạn biết cách tự mình thử nghiệm để tìm ra cách tốt nhất cho ứng dụng cụ thể của bạn. Nó liên quan đến việc chạy ứng dụng của bạn trong điều kiện thực tế và đo lường các yếu tố nhất định để xác định xem bạn có quá tải hay quá tải không.
Nếu ứng dụng của bạn bị quá tải, bạn có thể quay máy chủ thứ hai và sử dụng bộ cân bằng tải để cân bằng lưu lượng giữa chúng, chẳng hạn như Dịch vụ cân bằng tải của AWS. Nếu nó bị giảm tải đáng kể, bạn có thể tiết kiệm được một vài đô la bằng cách thuê một máy chủ rẻ hơn.
Sử dụng CPU
Sử dụng CPU có lẽ là số liệu hữu ích nhất để xem xét. Nó cung cấp cho bạn một cái nhìn tổng quan về mức độ quá tải của máy chủ của bạn; nếu mức sử dụng CPU của bạn quá cao, hoạt động của máy chủ có thể bị đình trệ.
Việc sử dụng CPU có thể nhìn thấy và cũng có thể hiển thị top
trung bình tải trong 1, 5 và 15 phút cuối cùng. Nó lấy dữ liệu này từ đó /proc/loadavg/
, vì vậy bạn có thể đăng nhập dữ liệu này vào tệp CSV và vẽ biểu đồ trong Excel nếu bạn muốn.
Hầu hết các nhà cung cấp đám mây sẽ có một biểu đồ tốt hơn cho việc này mặc dù. AWS có CloudWatch , hiển thị mức sử dụng CPU cho từng phiên bản theo số liệu EC2:
Nền tảng đám mây của Google hiển thị một biểu đồ đẹp dưới tab Giám sát trực tuyến trong thông tin cá thể
Trong cả hai biểu đồ, bạn có thể điều chỉnh thời gian để hiển thị mức sử dụng CPU theo thời gian. Nếu biểu đồ này liên tục đạt 100%, bạn có thể muốn xem xét nâng cấp.
Mặc dù vậy, hãy ghi nhớ rằng nếu máy chủ của bạn có nhiều lõi, việc sử dụng CPU vẫn có thể bị quá tải, trong khi đồ thị không đạt gần 100%. Nếu mức sử dụng CPU của bạn được ghim gần 50% và bạn có máy chủ lõi kép, có khả năng ứng dụng của bạn chủ yếu là một luồng và không thấy bất kỳ lợi ích hiệu năng nào.
Sử dụng RAM
Việc sử dụng RAM ít có khả năng dao động nhiều, vì phần lớn là câu hỏi liệu bạn có đủ sức để chạy một tác vụ nhất định hay không.
Bạn có thể xem nhanh việc sử dụng bộ nhớ top
, trong đó hiển thị bộ nhớ hiện được phân bổ cho từng quy trình trong cột “RES”, cũng như hiển thị mức sử dụng dưới dạng phần trăm của tổng bộ nhớ trong “%MEM”
Bạn có thể nhấn Shift + M để sắp xếp theo% MEM, liệt kê các quy trình chiếm nhiều bộ nhớ nhất.
Lưu ý, tốc độ bộ nhớ sẽ ảnh hưởng đến tốc độ CPU ở một mức độ nhất định, nhưng có thể đó không phải là yếu tố giới hạn trừ khi bạn đang chạy một ứng dụng yêu cầu kim loại trần và tốc độ nhanh nhất có thể.
Không gian lưu trữ
Nếu máy chủ của bạn hết dung lượng, nó có thể sập một số quy trình nhất định. Bạn có thể kiểm tra việc sử dụng đĩa với:
df -H
Điều này sẽ hiển thị một danh sách tất cả các thiết bị được đính kèm với cá thể của bạn, một số trong đó có thể không hữu ích cho bạn. Tìm kiếm cái lớn nhất (probably /dev/sda1/
), và bạn có thể thấy bao nhiêu hiện đang được sử dụng.
Bạn cần sử dụng hiệu quả xoay vòng nhật ký và đảm bảo không có gì tạo các tệp thừa trên hệ thống của bạn. Nếu có, bạn có thể muốn giới hạn nó chỉ lưu trữ một vài tệp cuối cùng. Bạn có thể xóa các tệp cũ bằng cách sử dụng find
với các tham số thời gian, được đính kèm với công việc định kỳ chạy mỗi giờ một lần:
0 * * * * find ~/backups/ -type f -mmin +90 -exec rm -f {} \;
Tập lệnh này sẽ xóa tất cả các tệp trong ~/backups/
thư mục cũ hơn 90 phút (được sử dụng cho máy chủ Minecraft đang tạo bản sao lưu có kích thước 1GB + cứ sau 15 phút, lấp đầy ổ SSD 16 GB). Bạn cũng có thể sử dụng logrotate , đạt được hiệu quả tương tự một cách thanh lịch hơn so với lệnh được viết vội vàng này.
Nếu bạn đang lưu trữ một tấn tệp, bạn có thể muốn xem xét chuyển chúng sang dịch vụ lưu trữ được quản lý như S3. Nó sẽ rẻ hơn so với các ổ đĩa gắn liền với cá thể của bạn.
Tốc độ mạng
Không có cách nào tuyệt vời để giám sát nguyên bản này, vì vậy nếu bạn muốn có được đầu ra dòng lệnh tốt, hãy cài đặt sar
từ sysstat
:
sudo apt-get install sysstat
Kích hoạt tính năng này bằng cách chỉnh sửa /etc/default/sysstat
và cài đặt ENABLED trực tiếp thành đúng.
Làm như vậy sẽ giám sát hệ thống của bạn và tạo một báo cáo cứ sau 10 phút, xoay chúng ra một lần một ngày. Bạn có thể sửa đổi hành vi này bằng cách chỉnh sửa cysab sysstat tại /etc/cron.d/sysstat
.
Bạn có thể họ thu thập trung bình lưu lượng truy cập mạng bằng -n
flag:
sar -n DEV 1 6
tail
cho đầu ra
sar -n DEV 1 6 | tail -n3
Nó hiển thị trung bình các gói và kilobyte được gửi mỗi giây trên mỗi giao diện mạng.
Mặc dù vậy, việc sử dụng GUI cho việc này dễ dàng hơn; CloudWatch có một thống kê của mạng NetworkIn xông và mạng NetworkOut cho mỗi trường hợp:
Bạn có thể thêm nhãn động với hàm SUM, hiển thị tổng số mạng theo byte trong một khoảng thời gian nhất định.
Việc bạn có quá tải mạng hay không rất khó để đánh giá; hầu hết thời gian, bạn bị giới hạn bởi những thứ khác, chẳng hạn như liệu máy chủ của bạn có thể theo kịp các yêu cầu hay không, trước khi lo lắng về việc sử dụng băng thông.
Nếu bạn thực sự lo lắng về lưu lượng truy cập hoặc muốn cung cấp các tệp lớn, bạn nên xem xét nhận CDN. Một CDN có thể giảm tải cả máy chủ của bạn và cho phép bạn phục vụ phương tiện tĩnh rất hiệu quả.