Giáo dục vSphere - Nhược điểm của việc cấu hình máy ảo với * quá nhiều * RAM là gì?


57

Quản lý bộ nhớ VMware dường như là một hành động cân bằng khó khăn. Với RAM cluster, Resource Pools, các kỹ thuật quản lý của VMware (TPS, khinh khí cầu, hoán đổi máy chủ), sử dụng RAM của khách, trao đổi, đặt chỗ, chia sẻ và giới hạn, có rất nhiều biến số.

Tôi đang ở trong tình huống khách hàng đang sử dụng tài nguyên cụm vSphere chuyên dụng. Tuy nhiên, họ đang cấu hình các máy ảo như thể chúng là trên phần cứng vật lý. Đổi lại, điều này có nghĩa là bản dựng VM tiêu chuẩn có thể có 4 vCPU và 16GB RAM trở lên. Tôi đến từ trường bắt đầu nhỏ (1 vCPU, RAM tối thiểu), kiểm tra sử dụng trong thế giới thực và điều chỉnh khi cần thiết. Thật không may, nhiều yêu cầu của nhà cung cấp và những người không quen thuộc với ảo hóa yêu cầu nhiều tài nguyên hơn mức cần thiết ... Tôi quan tâm đến việc định lượng tác động của quyết định này.


Một số ví dụ từ cụm "vấn đề".

Tóm tắt nhóm tài nguyên - Có vẻ gần như quá 4: 1. Lưu ý số lượng lớn RAM bóng. nhập mô tả hình ảnh ở đây

Phân bổ tài nguyên - Cột Phân bổ trường hợp xấu nhất cho thấy các máy ảo này sẽ có quyền truy cập dưới 50% RAM được cấu hình của chúng trong các điều kiện hạn chế. nhập mô tả hình ảnh ở đây

Biểu đồ sử dụng bộ nhớ thời gian thực của VM hàng đầu trong danh sách trên. 4 vCPU và 64GB RAM được phân bổ. Nó trung bình dưới 9GB sử dụng. nhập mô tả hình ảnh ở đây

Tóm tắt cùng một VM nhập mô tả hình ảnh ở đây


  • Nhược điểm của các tài nguyên quá mức và cấu hình quá mức (cụ thể là RAM) trong môi trường vSphere là gì?

  • Giả sử rằng các máy ảo có thể chạy trong ít RAM hơn, có công bằng không khi nói rằng có quá nhiều chi phí để cấu hình các máy ảo có nhiều RAM hơn so với thực tế chúng cần?

  • Đối số của câu trả lời là gì: "nếu VM có 16GB RAM được phân bổ, nhưng chỉ sử dụng 4GB, thì vấn đề là gì ?? "? Ví dụ, khách hàng có cần phải được giáo dục rằng VM không giống với phần cứng vật lý không?

  • Số liệu cụ thể nào nên được sử dụng để đo mức sử dụng RAM. Theo dõi các đỉnh của "Hoạt động" theo thời gian? Đang xem "Tiêu dùng"?


Cập nhật: Tôi đã sử dụng vCenter Operations Manager để lập hồ sơ môi trường này và nhận được một số chi tiết về số liệu thống kê cụm được liệt kê ở trên. Trong khi điều chắc chắn overcommitted, các máy ảo đang thực sự rất overconfigured với RAM không cần thiết rằng thực (nhỏ) bộ nhớ dấu chân cho thấy không có tranh chấp bộ nhớ ở cấp cụm / máy chủ ...

Điểm nổi bật của tôi là máy ảo phải thực sự có kích thước phù hợp với một chút bộ đệm cho bộ nhớ đệm cấp hệ điều hành. Quá quan tâm đến sự thiếu hiểu biết hoặc "yêu cầu" của nhà cung cấp dẫn đến tình huống được trình bày ở đây. Bong bóng bộ nhớ dường như là xấu trong mọi trường hợp, vì có một tác động hiệu suất, vì vậy kích thước đúng có thể giúp ngăn chặn điều này.

Cập nhật 2: Một số máy ảo này đang bắt đầu gặp sự cố:

kernel:BUG: soft lockup - CPU#1 stuck for 71s! 

VMware mô tả đây là một triệu chứng của tình trạng thừa bộ nhớ nặng . Vì vậy, tôi đoán rằng trả lời câu hỏi.

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


Báo cáo "Máy ảo quá khổ" của vCops ... nhập mô tả hình ảnh ở đây

Biểu đồ "Chất thải có thể thu hồi" của vCops ...

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

Câu trả lời:


45

Quản lý bộ nhớ của vSphere khá tốt, mặc dù các thuật ngữ được sử dụng thường gây ra nhiều nhầm lẫn.

Nói chung, nên tránh việc ghi nhớ quá mức vì nó tạo ra chính xác loại vấn đề này. Tuy nhiên, có những lúc không thể tránh được, vì vậy, đã được báo trước!

Nhược điểm của các tài nguyên quá mức và cấu hình quá mức (cụ thể là RAM) trong môi trường vSphere là gì?

Nhược điểm chính của các tài nguyên cam kết quá mức là nếu bạn có sự tranh chấp, các máy chủ của bạn sẽ bị buộc phải khinh khí cầu, trao đổi hoặc lên lịch / sao chép một cách thông minh đằng sau hậu trường để cung cấp cho mỗi VM RAM mà nó cần.

Để tạo bóng, vSphere sẽ thổi phồng "bong bóng" RAM trong một VM đã chọn, sau đó đưa RAM bóng đó cho khách cần nó. Điều này thực sự không "tệ" - Các máy ảo đang ăn cắp RAM của nhau, do đó không có sự hoán đổi đĩa nào xảy ra - nhưng nó có thể dẫn đến các số liệu cảnh báo sai lệch và sai lệch nếu chúng dựa vào việc phân tích mức sử dụng RAM của VM, vì RAM đã thắng Sẽ không được đánh dấu là "khinh khí cầu", chỉ là nó được "sử dụng" bởi HĐH.

Tính năng khác mà vSphere có thể sử dụng là Chia sẻ trang trong suốt (TPS) - về cơ bản là sao chép RAM. vSphere sẽ quét định kỳ tất cả RAM được phân bổ, tìm kiếm các trang trùng lặp. Khi được tìm thấy, nó sẽ sao chép lại và giải phóng các trang trùng lặp.

Hãy xem bảng trắng Quản lý bộ nhớ của vSphere (PDF) - cụ thể là "Phục hồi bộ nhớ trong ESXi" (trang 8) - nếu bạn cần một lời giải thích sâu hơn.

Giả sử rằng máy ảo có thể chạy trong ít RAM hơn, có công bằng không khi nói rằng có quá nhiều chi phí để cấu hình máy ảo có nhiều RAM hơn mức cần thiết?

Không có chi phí hiển thị - bạn có thể phân bổ 100 GB RAM cho máy chủ lưu trữ với 16 GB (tuy nhiên, điều đó không có nghĩa là bạn nên , vì những lý do trên).

Tổng bộ nhớ được sử dụng bởi tất cả các máy ảo của bạn là đường cong "Hoạt động" được hiển thị trong biểu đồ của bạn. Tất nhiên, bạn không bao giờ nên chỉ dựa vào con số đó khi tính toán mức độ bạn muốn vượt mức, nhưng nếu bạn có số liệu lịch sử như bạn có, bạn có thể phân tích và tính toán dựa trên mức sử dụng thực tế.

Sự khác biệt giữa RAM "Hoạt động" và "Tiêu thụ" được thảo luận trong luồng Cộng đồng VMWare này .

Đối số là gì: "nếu VM có 16GB RAM được phân bổ, nhưng chỉ sử dụng 4GB, vấn đề là gì ??" ? Ví dụ, khách hàng cần phải được giáo dục?

Câu trả lời ngắn gọn cho điều này là - khách hàng phải luôn được giáo dục về các thực tiễn tốt nhất, bất kể các công cụ theo ý của họ.

Khách hàng nên được giáo dục để định kích thước máy ảo của mình theo những gì họ sử dụng , hơn là những gì họ muốn . Rất nhiều thời gian, mọi người sẽ chỉ định quá mức máy ảo của họ chỉ vì họ có thể cần 16 GB RAM, ngay cả khi họ đang vấp ngã trong lịch sử 2 GB mỗi ngày. Là quản trị viên vSphere, bạn có kiến ​​thức, số liệu và sức mạnh để thách thức họ và hỏi họ xem họ có thực sự cần RAM mà họ đã phân bổ không.

Điều đó nói rằng, nếu bạn kết hợp quản lý bộ nhớ của vSphere với các giới hạn vượt mức được kiểm soát cẩn thận, bạn sẽ hiếm khi gặp sự cố trong thực tế, khả năng hết RAM trong một khoảng thời gian dài là tương đối xa.

Ngoài ra, vMotion tự động (được gọi là Lập kế hoạch tài nguyên phân tán bởi VMware) về cơ bản là một bộ cân bằng tải cho máy ảo của bạn - nếu một VM đơn lẻ trở thành một tài nguyên hog, DRS nên di chuyển VM xung quanh để sử dụng tốt nhất các tài nguyên của cụm.

Số liệu cụ thể nào nên được sử dụng để đo mức sử dụng RAM. Theo dõi các đỉnh của "Hoạt động" theo thời gian?

Chủ yếu được đề cập ở trên - mối quan tâm chính của bạn phải là việc sử dụng RAM "Hoạt động", mặc dù vậy bạn nên xác định cẩn thận các ngưỡng quá mức của mình để nếu bạn đạt được một tỷ lệ nhất định ( đây là một ví dụ điển hình , mặc dù có thể hơi lỗi thời). Thông thường, tôi chắc chắn sẽ ở trong 120% tổng số RAM cụm, nhưng tùy thuộc vào bạn để quyết định tỷ lệ bạn cảm thấy thoải mái.

Một vài bài viết / thảo luận tốt về bộ nhớ quá mức:


Tôi hiểu rằng RAM được phân bổ nhiều hơn cho VM có nghĩa là DRS khó di chuyển VM hơn - việc di chuyển giữa các nút mất nhiều thời gian hơn vì sao chép RAM mất nhiều thời gian hơn; và càng cần nhiều RAM, DRS càng ít có khả năng tìm thấy một khối đủ lớn miễn phí. Điều này có thể đặc biệt rắc rối (tôi đã được tin tưởng) nếu bạn có một sự kiện (ví dụ, lỗi phần cứng) làm giảm công suất trong cụm. Các máy ảo nhỏ rất dễ xáo trộn và không có khả năng nhận thấy nhiều sự cố ngừng hoạt động, các máy ảo lớn có thể rất khó. Tôi đã được thông báo chính xác?
James Polley

2
@James - chỉ bộ nhớ hoạt động (tức là đang sử dụng) được di chuyển trong vMotion, do đó, lượng RAM bạn phân bổ cho máy ảo của bạn không quan trọng bằng. Tham khảo: vmware.com/files/pdf/VMware-VMotion-DS-EN.pdf
Craig Watson

Câu trả lời chính xác. Tôi đã cập nhật câu hỏi của tôi với nhiều chi tiết hơn từ cụm cụ thể này. Điểm của bạn là tốt, mặc dù. Hóa ra các máy ảo trong thiết lập này được cấu hình quá mức. Việc sử dụng RAM chủ động thấp hơn nhiều so với tài nguyên vật lý của cụm, vì vậy không có sự tranh chấp ... Chỉ là khinh khí cầu / tráo đổi / xấu xí. Tôi nghi ngờ việc kích thước đúng các máy ảo sẽ giảm bớt áp lực này.
ewwhite

21

Ngoài câu trả lời xuất sắc từ Craig Watson, tôi muốn thêm vào như sau:

Bộ nhớ quá mức trong VMware không phải là điều bạn nên làm có chủ đích. Nó thường cho thấy rằng bạn hoặc khách hàng của bạn đang đăng ký phần cứng.

Nếu quá cam kết là sự lựa chọn duy nhất sau đó tôi mạnh mẽ khuyên bạn thực thi quy tắc ưu tiên. Nếu ai đó có ý định cung cấp cho VM 16GB vRam không quan trọng khi nó chỉ cần 4GB - ít nhất hãy đặt VM đó vào nhóm tài nguyên thấp hoặc ưu tiên thấp. Bạn thực sự không muốn một cơ sở dữ liệu sản xuất quan trọng bị hoán đổi bởi nhà ảo thuật. Hiệu suất không chỉ đi xuống cống, nó cũng sẽ ăn hết hàng đợi I / O so với bộ lưu trữ phụ trợ của bạn.

Nếu bạn đang chạy trên bộ lưu trữ nhanh (FusionIO, violin, SSD cục bộ, v.v.) thì việc hoán đổi có thể không phải là vấn đề lớn, nhưng với bộ lưu trữ SAN truyền thống, cuối cùng bạn sẽ ảnh hưởng đến mọi VM và máy chủ được kết nối với cùng một mảng / bộ điều khiển.


4
Quan sát tốt về tác động lưu trữ của trao đổi. Điều này giải thích một số vấn đề về hiệu suất của VNX mà tôi đã thấy ....
ewwhite

Điểm tuyệt vời, tôi chưa bao giờ nghĩ sẽ lấy đối số IO lưu trữ,
Dan
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.