Làm thế nào để mô tả các yêu cầu về hiệu suất của VMware cho ứng dụng của chúng tôi với quản trị viên VMware?


23

Thông thường, việc cài đặt ứng dụng dựa trên debian ổn định tại chỗ của chúng tôi chạy trong một máy ảo - điển hình là trong VMware ESXi. Trong trường hợp chung, chúng tôi không có khả năng hiển thị hoặc ảnh hưởng đến môi trường ảo hóa của họ và không có quyền truy cập vào ví dụ máy khách VMware vCenter hoặc tương đương. Tôi tập trung vào VMware ở đây, bởi vì đó là điều phổ biến nhất chúng ta thấy.

Chúng tôi muốn:

  • Nói với quản trị viên VMware của khách hàng: Bạn có thể chạy ứng dụng của chúng tôi trong môi trường VMware ESX của bạn, miễn là nó đáp ứng các tiêu chí hiệu suất X, Y và Z.
  • Có thể xác định xem các tiêu chí X, Y và Z trên thực tế có được đáp ứng liên tục hay không (ví dụ ngay bây giờ ), ngay cả trên một hệ thống đang chạy (chúng tôi không thể dừng ứng dụng của mình và chạy điểm chuẩn, và điểm chuẩn ban đầu sẽ không đủ, vì hiệu suất trong môi trường ảo thay đổi theo thời gian).
  • Hãy tự tin rằng nếu các tiêu chí X, Y và Z được đáp ứng, chúng tôi sẽ có đủ tài nguyên CTNH ảo để chạy ứng dụng của chúng tôi với hiệu suất thỏa đáng.

Bây giờ X, Y và Z là gì?

Chúng ta đã thấy hết lần này đến lần khác, rằng khi có vấn đề về hiệu năng, vấn đề không nằm ở ứng dụng của chúng ta, mà là với môi trường ảo hóa. Ví dụ, một máy ảo khác sử dụng hàng tấn CPU, bộ nhớ hoặc SAN mà các đĩa được lưu trữ thực sự được sử dụng nhiều bởi một thứ khác ngoài ứng dụng của chúng tôi. Chúng tôi hiện không có cách nào để chứng minh hoặc bác bỏ điều đó.

Về mặt lý thuyết cũng có thể đôi khi ứng dụng của chúng ta chậm ... ;-)

Làm thế nào để xác định nguyên nhân gốc rễ của các vấn đề hiệu suất của chúng tôi: Môi trường ảo hoặc ứng dụng của chúng tôi?

Thông thường có 3 khu vực cho các vấn đề về hiệu năng CPU, Bộ nhớ và DISK I / O.

CPU

Trong vd

Và làm thế nào để đo lường xem chúng ta có thực sự có được điều đó không? Trong khi ứng dụng của chúng tôi đang chạy, có lẽ chúng ta có thể thấy rằng chúng tôi đang sử dụng CPU ở mức 212% trên 4 CPU. Đó có phải là do ứng dụng của chúng tôi hoạt động nhiều hay vì một VM khác trên cùng một máy chủ đang chạy một nhiệm vụ chuyên sâu về CPU và sử dụng tất cả CPU?

Bộ nhớ (Ballooning?)

Nếu chúng tôi yêu cầu cho ví dụ 16GB RAM, mà thường được cấu hình, nhưng vì phình to , chúng tôi thực sự chỉ có được 4GB, và ngạc nhiên, thực hiện ứng dụng của chúng tôi kém.

Người ta có thể hỏi các công cụ VMware về khinh khí cầu hiện tại, nhưng chúng tôi thấy rằng nó thường nói dối (hoặc ít nhất là không chính xác). Chúng ta đã thấy các ví dụ trong đó HĐH nghĩ rằng có 16GB tổng RAM, tổng bộ nhớ lưu trữ (RSS) của tất cả các quá trình là RAM 4GB, nhưng chỉ có 2GB RAM miễn phí, ngay cả khi các công cụ VMware cho chúng ta biết có 0 bóng: - (

Ngoài ra, chỉ cần thêm RSS với nhau là không hợp lệ, vì có thể dễ dàng chia sẻ RAM, ví dụ như bộ nhớ sao chép khi ghi nên 512MB + 512MB không nhất thiết có nghĩa là 1GB nhưng có thể có nghĩa là ít hơn. Vì vậy, người ta không thể đơn giản trừ RSS khỏi tất cả các quy trình để có được số đo dung lượng RAM miễn phí và từ đó phát hiện sự phình to một cách đáng tin cậy. Người ta có thể phát hiện một số trường hợp khinh khí cầu, nhưng có những trường hợp khác mà bóng bay có hiệu lực, nhưng không thể phát hiện được bằng phương pháp này.

Đĩa I / O

Tôi đoán rằng chúng ta có thể vẽ đồ thị theo thời gian số lượng đĩa đọc và ghi, số byte đọc và ghi và IO chờ%. Nhưng điều đó sẽ cho chúng ta một hình ảnh chính xác của I / O đĩa? Tôi tưởng tượng rằng nếu có một công cụ khai thác bitcoin chạy trong một máy ảo khác sử dụng tất cả CPU, thì% chờ đợi IO của chúng tôi sẽ tăng lên, ngay cả khi SAN bên dưới cho hiệu suất chính xác như nhau, đơn giản là vì tài nguyên CPU của chúng tôi bị hỏng và do đó IO chờ đợi ( được đo bằng% ) tăng lên.

Vì vậy, tóm lại, ngôn ngữ nào chúng ta có thể sử dụng để mô tả ví dụ như quản trị viên VMware, hiệu suất chúng ta cần, theo cách có thể di động và đo lường được?


Các yêu cầu thực tế của ứng dụng của bạn là gì? Những gì bạn đã mô tả cho đến nay là không đủ để tôi đánh giá chính xác các yêu cầu tài nguyên trong môi trường của tôi và tôi thành thạo VMware. Đối tượng mục tiêu của bạn sẽ có một thời gian thậm chí khó khăn hơn. Trong thực tế, tôi cuối cùng không quan tâm đến các yêu cầu của nhà cung cấp và đo lường / kích thước đúng VM dựa trên các số liệu lịch sử và quan sát bằng cách sử dụng vRealize Operations Manager.
ewwhite

1
@ewwhite: Tôi không phải là chuyên gia phần cứng. Nhưng hãy để tôi nói cụ thể và nói rằng nó chạy tốt trên Core i7-5820K với RAM 8GB. Đĩa từ ca. 2015 vẫn ổn, SSD tốt hơn (tôi có thể cụ thể hơn ở đây, nếu cần). Chúng tôi cần 80GB dung lượng đĩa trống.
Peter V. Mørch

2
Là một quản trị viên, tôi nói, "Tôi cần phân bổ bao nhiêu lõi, yêu cầu RAM thực tế là gì, yêu cầu lưu trữ từ góc độ IOP và thông lượng, tốc độ tăng trưởng của lưu trữ là bao nhiêu, tôi có ổn không? với dự phòng mỏng, v.v? "
ewwhite

Ứng dụng của bạn yêu cầu gì từ góc độ hiệu suất? Bạn có điểm chuẩn cho ứng dụng của bạn? Nói "It runs fine with x, y, and z"không đủ chính xác. Bạn cần có khả năng nói với khách hàng của mình chính xác những gì ứng dụng của bạn yêu cầu. Nếu họ cung cấp cho bạn các tài nguyên đó và ứng dụng hoạt động kém thì câu hỏi không phải là "What do we need from a resource perspective?", nhưng"Why is it performing poorly even though the proper resources have been allocated?"
joeqwerty

1
@ewwhite: "Đã giải quyết"? Không. Tôi vẫn không có mã hóa 25 từ mà tôi có thể cung cấp cho quản trị viên VMware, sau đó có thể kiểm tra và biết rằng chúng tôi sẽ có được hiệu suất có thể dự đoán được, bởi vì, như bạn biết, "nó phụ thuộc". Nhưng tôi đã chấp nhận câu trả lời của bạn, vì bây giờ tôi nghĩ rằng một yêu cầu chính xác và có thể đo lường như vậy là không thể và thông tin của bạn sẽ đi một chặng đường dài để nói ngôn ngữ phù hợp. Trong tương lai, tôi sẽ khuyên bạn nên đi theo lộ trình "Nếu bạn muốn chúng tôi khắc phục sự cố về hiệu suất, ít nhất chúng tôi sẽ cần xem quyền truy cập vào vCenter của bạn".
Peter V. Mørch

Câu trả lời:


23
  • Nghiêm túc mà nói, hầu hết các quản trị viên VMware không giỏi về điều này: Hiểu biết kém về quản lý tài nguyên, thường không có kiến ​​thức về Linux (nó giúp) và thiếu băng thông thời gian. Tôi thấy hầu hết các quản trị viên nội bộ đều gặp khó khăn trong việc duy trì kiến ​​thức ảo hóa sâu.

  • May mắn thay, có một cuốn sách bạn có thể đọc !

  • Hầu hết các môi trường VMware không tuyệt vời: Thiết kế cụm kém, lập kế hoạch tài nguyên kém, lưu trữ không đạt tiêu chuẩn (ví dụ: Synology NAS), HA bị định cấu hình sai, không theo dõi hoặc vá lỗi.

  • VMware là một tổ chức thất bại với chúng tôi: Họ đặc biệt tệ trong việc phổ biến thông tin cập nhật và thúc đẩy các thực tiễn tốt nhất. Các tìm kiếm cơ bản cho các câu hỏi phổ biến tạo ra kết quả từ năm 2009 và các phiên bản cũ hơn của VMware, mặc dù thực tế là các quy trình và thiết kế đã thay đổi theo thời gian.

Tất cả những điều này sẽ làm việc chống lại bạn.

Bạn nên xác định các yêu cầu thực sự của giải pháp của bạn. Có thể nói chính xác rằng thiết bị của bạn yêu cầu: 2 vCPU, RAM 8GB và hiệu suất lưu trữ 500 IOP sẽ đi một chặng đường dài với một người như tôi.

Cách tiếp cận khác là quan sát một môi trường lành mạnh hoặc lý tưởng và ngoại suy các số liệu từ đó.

Bạn đã mô tả các vấn đề với việc triển khai nhất định. Các vấn đề và nút cổ chai là gì?


Một ví dụ về máy ảo có kích thước phù hợp:

Một máy chủ Exchange cho một tổ chức 300 người dùng.

  • Chúng tôi có 6 tuần khối lượng công việc / nhiệt độ căng thẳng so với thời gian.
  • 6 vCPUs giữ cho chúng tôi ở trên vùng căng thẳng với phòng đệm cho gai.
  • RAM 32 GB giữ cho chúng tôi trên giá trị căng thẳng, nhưng không phải là một số tiền vô lý trên mức thực sự cần thiết.

nhập mô tả hình ảnh ở đây

  • Tôi có thể lấy lại một vài GB RAM và vCPU, nhưng tất cả, đây là một VM hiệu quả.
  • Sẽ là khôn ngoan khi có được loại giám sát ứng dụng của bạn trong điều kiện lý tưởng.

nhập mô tả hình ảnh ở đây


Ví dụ về giám sát tài nguyên VM.

Good-ish: - VM có kích thước phù hợp. - CPU bị quá tải trên toàn cụm, nhưng chúng tôi không chạy vào tranh chấp.

nhập mô tả hình ảnh ở đây

Xấu

  • VM sẽ không nhận được tất cả RAM mà nó được cấu hình.
  • VM đã trao đổi RAM.
  • CPU được cấu hình quá mức.

nhập mô tả hình ảnh ở đây


2
Cảm ơn, ewwhite cho câu trả lời của bạn. Để tranh luận, giả sử rằng tại một khách hàng, nó chạy rất tốt với: 2 vCPU, RAM 8GB và hiệu suất lưu trữ 500 IOP (từ câu trả lời của bạn). Tại một trang web khách hàng khác, chúng tôi yêu cầu điều tương tự và nhận được điều đó, theo quản trị viên VMware. Tuy nhiên, 2vCPU được chia sẻ với 17 máy ảo CPU khác và RAM 8GB cũng được tăng tốc. Tôi không hiểu rõ về đĩa VM, vì vậy hãy nói rằng chúng tôi thực sự hiểu điều đó. Ứng dụng của chúng tôi hoạt động rất tốt trong môi trường đầu tiên của hai môi trường ESXi này và khủng khiếp ở môi trường kia. Làm cách nào để đo lường sự khác biệt từ bên trong máy ảo?
Peter V. Mørch

1
Bạn có thể theo dõi "Đánh cắp CPU " ở trên cùng trong máy ảo của mình để xem CPU có bị quá nhiều không. Đối với bong bóng / hoán đổi RAM, thật khó để nói từ bên trong VM, ngoại trừ hiệu năng kém. Tuy nhiên, bạn có thể yêu cầu một cái nhìn về vCenter và tài nguyên cho VM. Xem ở trên để biết ví dụ.
ewwhite

1
Tôi sẽ xem xét CPU Steal. Đôi khi chúng tôi kết thúc với việc quản trị viên VMware chỉ tay vào ứng dụng của chúng tôi và chúng tôi chỉ tay vào môi trường VMware chậm. Tuy nhiên, hầu hết chúng ta thường không có quyền truy cập vào vSphere và sau đó việc khắc phục sự cố trở nên khó khăn khi hoạt động tốt trong các cài đặt khác. Tôi đoán một cách tiếp cận có thể là: "Nếu bạn muốn chúng tôi khắc phục sự cố về hiệu suất, ít nhất chúng tôi sẽ cần xem quyền truy cập vào vCenter của bạn"
Peter V. Mørch

3
Hầu hết các quản trị viên VMware thậm chí không biết cách đọc những thứ này. Tôi dành rất nhiều thời gian để dọn dẹp sau khi họ. Vì vậy, là một nhà cung cấp, thật khó để yêu cầu quyền truy cập hoặc hiểu biết sâu sắc về thiết lập của họ. Nhưng tôi nghĩ rằng tốt nhất là củng cố các yêu cầu của bạn sau đó thực thi. Mặc dù tôi thường không khuyên bạn nên đặt phòng, nhưng nếu ứng dụng của bạn quan trọng thì điều đó có thể có ý nghĩa. Hoặc ít nhất, đặt "ưu tiên cổ phần". Ứng dụng này làm gì?
ewwhite

1
Các bạn đã xem việc phân phối này như một thiết bị VMware với cấu hình được khuyến nghị nhỏ, vừa và lớn chưa?
ewwhite
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.