Bộ nhớ được phân bổ trong máy chủ ESXi như thế nào?


17

Chúng tôi có máy chủ ESXi 4.1 với RAM 48 GB.

Đối với mỗi VM, chúng tôi đang phân bổ 4GB bộ nhớ. Vì máy chủ sẽ có 13 máy ảo, người quản lý của tôi nghĩ rằng điều này là sai.

Tôi sẽ giải thích với họ rằng ESXi sẽ thực sự tự quản lý bộ nhớ, nhưng họ hỏi tôi đã phân bổ bao nhiêu bộ nhớ cho máy chủ ESXi.

Tôi đã không phân bổ bất kỳ (tôi thậm chí chưa nghe nói về một tùy chọn phân bổ bộ nhớ cho chính máy chủ ESXi).

Bộ nhớ được phân bổ cho máy chủ ESXi như thế nào? Làm thế nào để phân bổ / phân phối RAM quá mức giữa các máy ảo mà không gặp sự cố?

Câu trả lời:


26

Có rất nhiều điều hơn là chỉ ESXi trong câu hỏi ở đây,

  1. Mỗi VM sẽ tiêu thụ tối đa 4GB + "phí" được ghi lại ở đây . Điều này phụ thuộc vào vCPUs, + bộ nhớ được phân bổ. Tối thiểu mỗi VM sẽ sử dụng 4261,98 MB (4096 + 165,98)
  2. Bộ nhớ riêng của ESXi, đây là phần cứng phụ thuộc. Tùy chọn đơn giản nhất là xem xét việc sử dụng bộ nhớ hệ thống trong máy khách vSphere. Từ bộ nhớ, tôi nhớ nó là khoảng 1,3 GB, nhưng như đã nói là rất phụ thuộc vào phần cứng.

Phân bổ bộ nhớ & giải thích quá mức

Lưu ý rằng trình ảo hóa sẽ không phân bổ tất cả bộ nhớ đó trước , nó phụ thuộc vào việc sử dụng VM. Tuy nhiên, đáng để hiểu điều gì sẽ xảy ra nếu VM cố gắng phân bổ và sử dụng tất cả bộ nhớ được phân bổ cho chúng.

Tối đa máy chủ VM + của bạn sẽ cố gắng sử dụng sẽ xấp xỉ, khoảng cách 55 GB có thể thay đổi

  • 1,3 GB được ESXi sử dụng
  • 4261,98 MB * 13 được sử dụng bởi các máy ảo

Có một khía cạnh khác cần tính đến và đó là ngưỡng bộ nhớ. Theo mặc định, VMware sẽ đặt mục tiêu có 6% miễn phí (ngưỡng bộ nhớ cao). Vì vậy, bộ nhớ đã sử dụng 55 GB cần giảm xuống còn ~ 45 GB

Điều đó có nghĩa là máy chủ sẽ có xấp xỉ 10.500 MB bộ nhớ mà nó cần để lấy lại từ một nơi nào đó nếu máy ảo sử dụng bộ nhớ mà chúng đã được phân bổ. Có ba điều ESX làm để tìm thêm 10,5 GB.

Phương pháp phục hồi bộ nhớ

  1. Chia sẻ trang minh bạch
  2. Ký ức bong bóng
  3. Trao đổi Hypervisor

Bạn nên đọc và hiểu Hiểu Quản lý tài nguyên bộ nhớ trong Máy chủ VMware® ESX ™ .

Tùy thuộc vào một số lượng lớn các yếu tố, sự kết hợp của cả ba sẽ / có thể xảy ra trên một máy chủ đã cam kết. Bạn cần kiểm tra thông tin của mình và theo dõi các số liệu này để hiểu tác động của việc cam kết.

Một số quy tắc thô đáng để biết (tất cả trong bài viết trên và các nguồn khác).

  1. Chia sẻ trang trong suốt không xảy ra đối với các máy ảo sử dụng 2/4 MB trang. Khi bạn đã phân bổ 4096 MB cho máy ảo Windows của mình, họ sẽ sử dụng các trang 2/4 MB theo mặc định (phụ thuộc PAE). Chỉ dưới áp lực bộ nhớ, VMware sẽ phá vỡ các trang lớn xuống còn 4 KB trang có thể được chia sẻ. TPS dựa vào việc sử dụng các chu kỳ CPU nhàn rỗi và quét các trang bộ nhớ ở một tốc độ nhất định. Nó trả về bộ nhớ tương đối chậm (nghĩ một giờ thay vì vài phút). Vì vậy, một cơn bão khởi động sẽ có nghĩa là TPS sẽ không giúp bạn. Từ ba, điều này có tác động hiệu suất thấp nhất. Thêm từ tài liệu,

Trong hệ thống ảo hóa bộ nhớ được hỗ trợ bằng phần cứng (ví dụ: các hệ thống Hỗ trợ phần cứng Intel EPT và Hỗ trợ phần cứng AMD RVI [6]), ESX sẽ tự động sao lưu các trang vật lý của khách với các trang vật lý máy chủ lớn (vùng nhớ liền kề 2 MB thay vì 4KB cho các trang thông thường) hiệu suất tốt hơn do bỏ lỡ TLB ít hơn. Trong các hệ thống như vậy, ESX sẽ không chia sẻ các trang lớn đó vì: 1) xác suất tìm thấy hai trang lớn có nội dung giống hệt nhau là thấp và 2) chi phí thực hiện so sánh từng bit cho trang 2MB lớn hơn nhiều cho trang 4KB. Tuy nhiên, ESX vẫn tạo băm cho các trang 4KB trong mỗi trang lớn. Vì ESX sẽ không trao đổi các trang lớn, trong quá trình trao đổi máy chủ, trang lớn sẽ được chia thành các trang nhỏ để có thể sử dụng các giá trị băm được tạo trước này để chia sẻ các trang nhỏ trước khi chúng bị tráo đổi. Nói tóm lại, chúng tôi có thể không quan sát bất kỳ chia sẻ trang nào cho các hệ thống ảo hóa bộ nhớ được hỗ trợ phần cứng cho đến khi bộ nhớ máy chủ bị quá tải.

  1. Các cú đá bóng tiếp theo (ngưỡng có thể định cấu hình, theo mặc định, đây là khi máy chủ lưu trữ không có bộ nhớ hơn 6% (giữa mức cao và phần mềm)). Hãy chắc chắn rằng bạn đã cài đặt trình điều khiển và coi chừng Java và các ứng dụng được quản lý nói chung. HĐH không có cái nhìn sâu sắc về những gì người dọn rác sẽ làm tiếp theo và cuối cùng nó sẽ đánh các trang đã được hoán đổi vào đĩa. Không có gì lạ khi các máy chủ chạy các ứng dụng java dành riêng để vô hiệu hóa trao đổi để đảm bảo điều đó không xảy ra. Hãy xem Trang 17 của Quản lý bộ nhớ vSphere, Specjbb

  2. Trao đổi Hypervisor , từ ba phương thức là phương thức duy nhất đảm bảo "bộ nhớ" có sẵn cho nhà ảo thuật trong một thời gian định sẵn. Điều này sẽ được sử dụng nếu 1 & 2 không cung cấp đủ bộ nhớ để duy trì dưới ngưỡng cứng (mặc định là 2% bộ nhớ trống). Khi bạn đọc qua các số liệu hiệu suất (tự làm), bạn sẽ nhận ra đây là hiệu suất tồi tệ nhất trong ba. Cố gắng tránh nó bằng mọi giá vì tác động hiệu suất sẽ rất đáng chú ý trên gần như tất cả các ứng dụng tỷ lệ phần trăm chữ số

  3. Có một trạng thái nữa để nhận biết mức thấp (theo mặc định là 1%). Từ hướng dẫn này có thể cắt giảm đáng kể hiệu suất của bạn,

Trong một trường hợp hiếm hoi khi bộ nhớ trống của máy chủ giảm xuống dưới ngưỡng thấp, bộ ảo hóa tiếp tục lấy lại bộ nhớ thông qua trao đổi và nén bộ nhớ, đồng thời chặn việc thực thi tất cả các máy ảo tiêu thụ nhiều bộ nhớ hơn so với phân bổ bộ nhớ đích của chúng.

Tóm lược

Điểm mấu chốt của sự căng thẳng là không thể dự đoán từ các trang trắng về việc môi trường của bạn sẽ hoạt động như thế nào.

  1. TPS có thể cung cấp cho bạn bao nhiêu? (Phụ thuộc vào mức độ tương tự máy ảo của bạn với HĐH, Gói dịch vụ và các ứng dụng đang chạy)
  2. Máy ảo của bạn phân bổ bộ nhớ nhanh như thế nào? Họ càng làm nhanh, bạn càng có khả năng nhảy đến ngưỡng tiếp theo trước khi sơ đồ phục hồi bộ nhớ ít tác động thành công trong việc giữ bạn ở ngưỡng hiện tại.
  3. Tùy thuộc vào ứng dụng, mỗi sơ đồ khai hoang bộ nhớ sẽ có tác động rất khác nhau.

Kiểm tra các kịch bản trung bình của bạn, bạn là kịch bản phân vị 95% và cuối cùng là tối đa để hiểu môi trường của bạn sẽ chạy như thế nào.


Chỉnh sửa 1

Đáng nói hơn là với vSphere 4 (hoặc 4.1 không thể nhớ lại), giờ đây có thể đặt trao đổi hypanneror trên đĩa cục bộ nhưng vẫn vmotion VM. Nếu bạn đang sử dụng bộ nhớ chia sẻ, tôi thực sự khuyên bạn nên di chuyển tệp hoán đổi hypanneror sang đĩa cục bộ theo mặc định. Điều này đảm bảo rằng khi một máy chủ chịu áp lực bộ nhớ nghiêm trọng, nó sẽ không ảnh hưởng đến tất cả các máy chủ / VM vSphere khác trên cùng một bộ lưu trữ được chia sẻ.

Chỉnh sửa 2

Dựa trên các nhận xét, thực tế là ESX không phân bổ bộ nhớ trả trước in đậm ...

Chỉnh sửa 3

Giải thích thêm một chút về ngưỡng bộ nhớ.


1
VMware không chỉ định bộ nhớ không được sử dụng; lý do thực sự tại sao hoạt động quá mức là do VM sẽ chỉ được phân bổ dung lượng bộ nhớ tối đa khi nó yêu cầu . Khi mọi thứ được phân bổ, yêu cầu thêm bộ nhớ đến từ trao đổi.
thích nghi

1
Bạn có thấy bit này trước khi thêm nhận xét đó không? "Lưu ý rằng trình ảo hóa sẽ không phân bổ tất cả bộ nhớ đó trước, nó phụ thuộc vào việc sử dụng VM. Tuy nhiên, đáng để hiểu những gì sẽ xảy ra nếu VM cố gắng phân bổ và sử dụng tất cả bộ nhớ được phân bổ cho chúng"
M Afifi

Vì đó khá là một trong những mối quan tâm hàng đầu của OP (vmware gợi lên bộ nhớ mà tôi KHÔNG CÓ GÌ?), Nên nó đã xuất hiện cao trong danh sách, chứ không phải là một suy nghĩ sau. Bạn đang giải thích việc sử dụng bộ nhớ ngược bằng cách giải thích khai hoang. Tại sao ?
thích nghi

Làm thế nào là nó ngược? Trả lời nói, đây là bộ nhớ bạn đã phân bổ. Nó sẽ không phân bổ nó trả trước. Nếu nó (dựa trên việc sử dụng bộ nhớ VM) thì đó là tác động. Thật sự không thể nói với ai đó đừng lo lắng về điều đó. Nếu bạn bộ nhớ quá mức, bạn nên biết tác động.
M Afifi

4

VMware (và các công nghệ ảo hóa khác) chia sẻ tài nguyên (bộ nhớ, thời gian xử lý, I / O các loại) giữa các VM theo các thuật toán khác nhau.

Đó là posssible để overcommit nguồn lực, bởi vì không phải tất cả các máy ảo sẽ sử dụng tất cả các quá trình xử lý, bộ nhớ hay I / O rằng họ cần tất cả thời gian. Hướng dẫn quản lý tài nguyên của VMware có lẽ là nơi tốt nhất để đọc những gì có thể có trong ESXi.

Bạn cũng có thể quản lý hiệu ứng của các thuật toán bằng cách cân các VM khác nhau cho các tài nguyên khác nhau - ví dụ: bạn có thể cung cấp cho VM máy chủ ứng dụng một trọng số cao hơn cho bộ xử lý so với VM máy chủ tệp. Tuy nhiên, các thiết lập ngoài hộp sẽ xử lý hầu hết các yêu cầu rất tốt. Trong một số trường hợp, thực hiện một số cấu hình ở đây là đủ để xoa dịu những người quản lý không hiểu rõ về nó, nhưng tất nhiên hãy cẩn thận và đọc tài liệu cho phiên bản VMware của bạn và hiểu những gì bạn đang làm. Nếu người quản lý của bạn không cần thêm thông tin, thì chỉ cần sử dụng mặc định.

Lưu ý rằng overcommitment không nhất thiết phải luôn là một ý tưởng hay, đặc biệt nếu bạn đã ảo hóa trên một máy chủ. Bạn nên theo dõi việc sử dụng tài nguyên trong khu đất ESXi của mình và nếu cần, hãy thêm các máy chủ / tài nguyên bổ sung nếu bạn thường xuyên tiêu thụ tất cả một hoặc nhiều tài nguyên.


2

Hãy để cài đặt VMWare ESXi của bạn xử lý nó. Bạn có thể sử dụng quá mức tài nguyên RAM trên các hệ thống VMWare do sử dụng các kỹ thuật tạo bóng, nén và sao chép bộ nhớ .

Nếu các máy ảo đang sử dụng một hệ điều hành tương tự, sẽ có một số tiền tiết kiệm ở đó. Đảm bảo bật các công cụ VMWare bên trong máy khách VM để sử dụng đầy đủ các tính năng này.

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.