Bạn có thể giúp tôi với kế hoạch năng lực của tôi?


132

Đây là một câu hỏi kinh điển về kế hoạch năng lực

Liên quan:

Tôi có một câu hỏi liên quan đến kế hoạch năng lực. Cộng đồng Server Fault có thể giúp tôi với những điều sau:


  • Tôi cần loại máy chủ nào để xử lý một số lượng người dùng?
  • Có bao nhiêu người dùng một máy chủ với một số thông số kỹ thuật xử lý?
  • Sẽ một số cấu hình máy chủ là đủ nhanh cho trường hợp sử dụng của tôi ?
  • Tôi đang xây dựng một trang web mạng xã hội: tôi cần loại phần cứng nào?
  • Tôi cần bao nhiêu băng thông cho một số dự án ?
  • Một số người dùng sẽ sử dụng bao nhiêu băng thông trong một số ứng dụng ?

Câu trả lời:


97

Cộng đồng Server Fault thường không thể giúp bạn lập kế hoạch dung lượng - câu trả lời tốt nhất chúng tôi có thể cung cấp là "Điểm chuẩn mã của bạn trên phần cứng tương tự như những gì bạn sẽ sử dụng trong sản xuất, xác định bất kỳ tắc nghẽn nào, sau đó xác định khối lượng công việc của bạn phần cứng hiện tại có thể xử lý và / hoặc bạn cần bao nhiêu mã lực phần cứng để xử lý khối lượng công việc mục tiêu của mình " .


Có một số yếu tố trong kế hoạch năng lực mà chúng ta không thể đánh giá đầy đủ trên trang web Câu hỏi và Trả lời:

  • Các yêu cầu của mã / phần mềm cụ thể của bạn
  • Tài nguyên bên ngoài (cơ sở dữ liệu, phần mềm / trang web / máy chủ khác)
  • Khối lượng công việc của bạn (cao điểm, trung bình, xếp hàng)
  • Giá trị kinh doanh của hiệu suất (phân tích chi phí / lợi ích)
  • Sự mong đợi về hiệu suất của người dùng của bạn
  • Bất kỳ thỏa thuận cấp độ dịch vụ / nghĩa vụ hợp đồng nào bạn có thể có

Phân tích đúng về các yếu tố này và các yếu tố khác, nằm ngoài phạm vi của một trang web hỏi và trả lời đơn giản: Họ yêu cầu kiến ​​thức chi tiết về môi trường và các yêu cầu của bạn mà chỉ nhóm của bạn (hoặc một nhà tư vấn được đền bù thỏa đáng) mới có thể thu thập hiệu quả.


Một số định nghĩa về kế hoạch năng lực

  1. RAM là giá rẻ
    Nếu bạn mong muốn ứng dụng của mình sử dụng nhiều RAM, bạn nên đặt càng nhiều RAM càng tốt.
  2. Đĩa rẻ tiền
    Nếu bạn muốn sử dụng nhiều đĩa, bạn nên mua ổ đĩa lớn - rất nhiều trong số đó.
    Bộ lưu trữ SAN / NAS rẻ hơn và thường nên lớn hơn là nhỏ để tránh nâng cấp tốn kém sau này.
  3. Khối lượng công việc tăng theo thời gian
    Giả sử nhu cầu tài nguyên của bạn sẽ tăng lên.
    Hãy nhớ rằng sự gia tăng có thể không đối xứng (CPU và RAM có thể tăng nhanh hơn đĩa) và nó có thể không phải là tuyến tính.
  4. Điện đắt tiền
    Mặc dù RAM và đĩa đã giảm giá đáng kể, chi phí điện vẫn tăng đều đặn. Tất cả những đĩa và RAM bổ sung, chưa kể đến sức mạnh CPU, sẽ làm tăng hóa đơn tiền điện của bạn (hoặc hóa đơn bạn phải trả cho nhà cung cấp của mình). Lên kế hoạch phù hợp.

1
Bạn nên hoàn toàn bỏ nó và sử dụng tích hợp bởi các bộ phận!
Gilles

+1. Và RAM, như bạn đề xuất trong tiên đề # 1, là một trong những điều có lợi ích lớn. Chẳng hạn, nó tăng khả năng sử dụng bộ nhớ đệm tốt hơn, do đó cho phép bạn thực hiện ít truy vấn cơ sở dữ liệu hơn, từ đó làm giảm tải cho đĩa và CPU. Tôi thường thất vọng bởi các nhà cung cấp dịch vụ lưu trữ cung cấp CPU nhanh với máy chủ của họ và dung lượng RAM tối thiểu.
Steve Wortham

31
Tôi muốn thêm vào điều này: Dung lượng đĩa rẻ. Hiệu suất đĩa trở nên đắt đỏ. Đặc biệt là khi chúng ta thấy sự tăng trưởng về kích thước đĩa hơn 10 năm, nhưng các định luật vật lý không thay đổi. Quy tắc ngón tay cái tôi sử dụng (tính đến ngày hôm nay; tháng 6 năm 2014) là để có hiệu suất tối ưu: 75 IOP trên mỗi trục chính trên SATA, 200 IOP trên mỗi trục chính trên FC và 1500 IOP trên mỗi SSD. Ổ đĩa SATA lớn cho tỷ lệ IO trên gigabyte thực sự khá kém.
Sobrique

Vào giữa năm 2019, không ai nên mua ổ đĩa trục chính nữa.
Robert Harvey

@RobertHarvey ai nên mua SAS ổ trục chính nữa. Để có được dung lượng cho các máy chủ quy mô petabox vẫn đòi hỏi phải có nhiều ổ đĩa SATA hoặc cuối cùng bạn phải trả nhiều tiền.
Mikko Rantalainen

44

Lập kế hoạch đếm máy ảo

Khi tìm hiểu có bao nhiêu máy ảo bạn nên lập kế hoạch cho một máy chủ, thực sự không có quy tắc thực sự tốt nào. Trong thực tế, chỉ có một, và nó chỉ là loại tốt:

Số lượng máy ảo thường được giới hạn bởi RAM, ngoại trừ khi chúng không.

Điều này không hữu ích lắm. Nếu những máy ảo đó sẽ chạy các ứng dụng CPU thấp, thì bộ giới hạn của bạn sẽ dựa trên RAM. Mỗi nền tảng VM có các khả năng riêng để đăng ký vượt mức RAM, do đó không dễ dàng như TOTAL_RAM / Per-VM-RAM = MachineCount, nhưng con số đó là một mục có kế hoạch tốt.

Nhưng điều gì sẽ xảy ra nếu máy ảo của bạn đang làm những việc bên cạnh việc giảm tốc độ gói CPU thấp?


Số lượng máy ảo được giới hạn bởi bảy tài nguyên riêng biệt có sẵn cho máy chủ:

  • Hypervisor VMware, Xen, HyperV, KVM, bất cứ điều gì. Mỗi có tính năng tác động đếm riêng của họ. Một số rất giỏi trong việc sao chép trang nhớ, số khác thì không nhiều. Một số không cho phép ghi đè lên dung lượng CPU, một số thì không.
  • Tốc độ lõi CPU Điều này giới hạn hiệu năng đơn luồng tối đa mà VM sẽ có thể chạy. 36 lõi của CPU 1,8 GHz có thể là 64,8 GHz CPU trên máy chủ, nhưng không có luồng đơn nào sẽ chạy nhanh hơn 1,8 GHz.
  • Đếm lõi CPU Điều này, với tốc độ lõi, mô tả mức trần hiệu năng CPU tối đa bạn có thể trải nghiệm.
  • RAM hệ thống Như được mô tả ở trên, điều này giới hạn số lượng máy ảo bạn có thể chạy. Một số trình ảo hóa nhất định tốt hơn các trình ảo hóa khác ở những thứ như sao chép trang bộ nhớ, vì vậy nếu bạn đang chạy 100 máy ảo giống hệt nhau, bạn có thể đóng gói rất nhiều trong số chúng trên các hệ thống sao chép như vậy so với khi bạn đang chạy 100 máy ảo hoàn toàn khác nhau.
  • Kích thước đĩa Mỗi hình ảnh hệ điều hành cần một khoảng trống nhất định. Bạn cần đủ không gian để lưu trữ tất cả. Do đó, kích thước đĩa đặt giới hạn trên cho số lượng máy ảo bạn có thể lưu trữ.
  • Băng thông I / O Đĩa nằm dưới VM có tối đa số lượng I / O mỗi giây mà nó có thể xử lý. Nếu bạn ném quá nhiều vào nó, các hệ thống sẽ sa lầy chờ đợi I / O hoàn thành. Điều này đặt giới hạn trên cho số lượng máy ảo tiêu thụ I / O bạn có thể chạy.
  • Băng thông mạng Đối với các máy ảo sử dụng mạng, băng thông mạng khả dụng sẽ đặt trần cho số lượng máy ảo như vậy bạn có thể chạy trên một máy chủ nhất định.

Tất cả những thứ này có thể là thứ bạn vấp phải, tất cả phụ thuộc vào những gì bạn đang làm với máy ảo của mình. Một số điều cần nhớ:

  • Không có thứ gọi là hệ thống chung chung.
  • Không có thứ gọi là máy chủ web chung , vì mã ứng dụng có thể chạy từ phục vụ kiểu CDN hầu như không di chuyển , đến các công cụ bẻ khóa lớn như chuyển mã video.
  • Không có thứ gọi là máy chủ cơ sở dữ liệu chung . Chúng có thể chạy từ các hệ thống nhỏ được sử dụng chỉ để theo dõi trạng thái phiên, đến các hệ thống rất lớn.

Để tìm hiểu có bao nhiêu máy ảo bạn có thể đóng gói vào một hệ thống máy chủ, bạn cần biết hệ thống của bạn chạy như thế nào và những gì chúng yêu cầu để chạy tốt. Khi bạn biết điều đó, bạn có thể lập kế hoạch đếm. Và tốt hơn nữa, hãy tìm hiểu xem bạn cần phải làm thế nào để tạo ra các hệ thống máy chủ của mình!


trên hết, hãy sử dụng các hệ thống dựa trên vm trên hai máy chủ vật lý riêng biệt với vm không liên kết. điều này cho phép lỗi phần cứng mà không làm mất toàn bộ hệ thống. vm có thể di chuyển giữa các máy chủ giống hệt nhau mà không mất dữ liệu. chỉ mất phiên, sau đó xây dựng lại. cá nhân, tôi sẽ thuê ngoài cho một công ty lưu trữ cung cấp các dịch vụ này (google hoặc amazon). chúng đắt tiền nhưng ít hơn nhiều so với việc chạy của riêng bạn.
Random-IT

2
Thứ mà tôi thấy không được khai thác thường xuyên nhất trong các triển khai VM là I / O đĩa. Hầu hết mọi người hiểu không gian đĩa, tốc độ CPU và bộ nhớ. Họ quên hiệu suất đĩa đó.
Dan Pritts

6

Hãy chắc chắn rằng bạn đang hỏi đúng câu hỏi.

  • Máy tính giá rẻ
  • Nhu cầu trong tương lai rất khó dự đoán
  • Lập kế hoạch làm thế nào để mở rộng quy mô, không phải mua gì trước thời hạn

Nếu bạn không biết bạn cần gì, điều đó có nghĩa là bạn không cần nhiều lắm. Nếu bạn có một trang web nóng, có lẽ bạn cũng có một nhóm hoạt động, người biết bao nhiêu ram, đĩa, io, mạng, v.v ... ứng dụng của bạn cần. Nếu bạn đang trong giai đoạn mơ ước, bạn nên bắt đầu với máy tính để bàn của mình và tiếp tục phát triển.

Hãy chắc chắn rằng bạn có một số ý tưởng về cách bạn sẽ mở rộng quy mô khi mọi thứ trở nên lớn hơn. Bạn có thể thêm nhiều máy chủ phía sau bộ cân bằng tải không? Bạn có thể bảo vệ máy chủ redis?

Ngoài ra, có trung tâm dữ liệu của riêng bạn hút. Một trung tâm dữ liệu (ngay cả khi chỉ là một máy tính) là một sự phân tâm khỏi mục đích thực tế của bạn. Bạn không thể chỉ mua một máy tính, bật nó lên và bỏ đi. Bạn cần điều hòa không khí, lọc không khí, điện đáng tin cậy, internet đáng tin cậy, dự phòng, phụ tùng thay thế, phòng vật lý để phát triển, công suất phát triển, dây cáp điện không bị vấp và hàng trăm cơn đau đầu khác.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.