> For the complete documentation index, see [llms.txt](https://docs.verge.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.verge.io/knowledge-base/vi/virtual-machines/guest-memory-management.md).

# Hiểu quản lý bộ nhớ máy ảo VergeOS

## Tổng quan

VergeOS áp dụng một cách tiếp cận khác đối với việc quản lý bộ nhớ của máy ảo so với các nền tảng như VMware và Nutanix. Hiểu cách VergeOS xử lý việc cấp phát và báo cáo bộ nhớ là điều cần thiết cho việc lập kế hoạch dung lượng hiệu quả, tối ưu hóa hiệu năng và khắc phục sự cố. Bài viết này giải thích vì sao báo cáo mức sử dụng bộ nhớ của VergeOS khác với báo cáo của hệ điều hành guest và những lợi ích của lựa chọn thiết kế này.

## Những gì bạn sẽ học

* Vì sao VergeOS hiển thị bộ nhớ được cấp phát thay vì mức sử dụng bộ nhớ thực tế
* Cách quản lý bộ nhớ của VergeOS khác với các nền tảng memory ballooning như thế nào
* Lợi ích về hiệu năng và độ tin cậy từ cách tiếp cận của VergeOS
* Các phương pháp tốt nhất để giám sát bộ nhớ ở cả cấp host và guest
* Cách thiết kế này cải thiện việc lập kế hoạch dung lượng và độ tin cậy khi di chuyển workload

## Các khái niệm chính

### Phân bổ bộ nhớ so với mức sử dụng bộ nhớ

**Phân bổ bộ nhớ**: Lượng RAM vật lý được hypervisor dành riêng cho một máy ảo, bất kể hệ điều hành guest và các ứng dụng đang sử dụng tích cực bao nhiêu.

**Mức sử dụng bộ nhớ**: Lượng bộ nhớ thực sự được các ứng dụng và hệ điều hành bên trong máy ảo tiêu thụ.

Trong VergeOS, khi bạn cấp 8GB RAM cho một VM, hypervisor sẽ ngay lập tức dành riêng 8GB bộ nhớ vật lý trên host, ngay cả khi hệ điều hành guest chỉ hiển thị đang dùng 2GB.

### Tại sao VergeOS hiển thị bộ nhớ được cấp phát

Khi bộ nhớ được cấp phát cho một VM, hypervisor phải dành riêng toàn bộ dung lượng đó trong RAM vật lý bất kể các ứng dụng bên trong VM thực sự đang dùng bao nhiêu. Điều này là do hệ điều hành guest có thể yêu cầu truy cập bất kỳ phần nào trong bộ nhớ được cấp phát vào bất kỳ lúc nào, và hypervisor phải đảm bảo bộ nhớ đó luôn sẵn có.

VergeOS hiển thị phần bộ nhớ được dành riêng/được cấp phát này vì nó đại diện cho các tài nguyên vật lý thực tế đang được tiêu thụ trên host, cung cấp một bức tranh chính xác về mức sử dụng tài nguyên cho việc lập kế hoạch dung lượng và quản lý hiệu năng.

## Cách VergeOS khác với các nền tảng khác

### Cách tiếp cận của VergeOS: Không dùng memory ballooning

VergeOS cố ý tránh các kỹ thuật memory ballooning được các nền tảng ảo hóa khác sử dụng. Các đặc điểm chính bao gồm:

* **Được cấp phát so với Được sử dụng**: VergeOS hiển thị những gì được cấp phát cho từng VM, thường không giống với mức sử dụng ở cấp guest
* **Ưu tiên hiệu năng**: Điều này loại bỏ chi phí phụ và độ phức tạp của ballooning
* **Phân bổ tài nguyên có thể dự đoán**: Những gì bạn thấy chính là phần được dành riêng trên host vật lý

### Cách tiếp cận ballooning truyền thống

Nhiều nền tảng ảo hóa sử dụng các driver memory ballooning để:

* Báo cáo mức sử dụng bộ nhớ một cách động cho hypervisor
* Cho phép "cấp phát vượt mức" bộ nhớ bằng cách chia sẻ bộ nhớ chưa dùng giữa các VM
* Yêu cầu các driver đặc biệt (balloon driver) bên trong từng hệ điều hành guest
* Tạo ra sự phức tạp trong quản lý bộ nhớ và có thể ảnh hưởng đến hiệu năng

## Lợi ích của thiết kế quản lý bộ nhớ của VergeOS

### 1. Hiệu năng có thể dự đoán

Bằng cách loại bỏ chi phí phụ của balloon driver, VergeOS mang lại hiệu năng VM có thể dự đoán hơn. Không có cơ chế quản lý bộ nhớ động nào có thể ảnh hưởng đến thời gian phản hồi của ứng dụng hoặc gây ra áp lực bộ nhớ bất ngờ.

### 2. Lập kế hoạch dung lượng đơn giản hơn

Với khả năng hiển thị phân bổ rõ ràng, quản trị viên có thể dễ dàng tính toán:

* Tổng bộ nhớ đã cam kết trên tất cả VM
* Dung lượng bộ nhớ khả dụng cho các workload mới
* Mức sử dụng tài nguyên mà không cần các phép tính ballooning phức tạp

### 3. Độ tin cậy nâng cao

VergeOS tránh các vấn đề quản lý bộ nhớ động có thể xảy ra với ballooning, chẳng hạn như:

* Độ trễ thu hồi bộ nhớ
* Áp lực bộ nhớ lên hệ điều hành guest trong quá trình balloon phồng lên
* Khả năng ứng dụng không ổn định trong quá trình xử lý bộ nhớ

### 4. Đảm bảo di chuyển thành công

**Quan trọng cho tính sẵn sàng cao**: Cách tiếp cận của VergeOS đảm bảo việc di chuyển workload có thể dự đoán được khi node gặp sự cố. Vì toàn bộ bộ nhớ đã cấp phát luôn được dành riêng, hệ thống có thể đảm bảo rằng tất cả VM đều có thể được di chuyển sang các node khả dụng mà không gặp bất ngờ do cấp phát vượt mức bộ nhớ.

Nếu VergeOS sử dụng memory ballooning, hệ thống sẽ không thể đảm bảo việc di chuyển đáng tin cậy tất cả workload sang node khác trong tình huống lỗi, vì nhu cầu bộ nhớ thực tế có thể vượt quá dung lượng của node đích khi các balloon bị xả hơi.

{% hint style="warning" %}
**Độ tin cậy khi di chuyển**

Memory ballooning có thể tạo ra các tình huống di chuyển khó dự đoán. Khi các VM tưởng như dùng ít bộ nhớ hơn đột ngột cần toàn bộ phần được cấp phát của chúng trong lúc di chuyển, các node đích có thể không đủ tài nguyên, dẫn đến khả năng thất bại di chuyển vào những thời điểm quan trọng.
{% endhint %}

## Các phương pháp tốt nhất để giám sát bộ nhớ

### Giám sát ở cấp host (Bảng điều khiển VergeOS)

Dùng các bảng điều khiển VergeOS để giám sát:

* **Tổng bộ nhớ được cấp phát** trên tất cả VM trên mỗi node
* **Bộ nhớ vật lý khả dụng** cho việc triển khai VM mới
* **Xu hướng sử dụng bộ nhớ** cho lập kế hoạch dung lượng
* **Trạng thái bộ nhớ của node** trong quá trình bảo trì và di chuyển

### Giám sát ở cấp guest

Bên trong từng VM, dùng các công cụ phù hợp để giám sát:

* **Mức tiêu thụ bộ nhớ của ứng dụng** để tinh chỉnh hiệu năng
* **Mức sử dụng bộ nhớ của hệ điều hành** để tối ưu hóa
* **Rò rỉ bộ nhớ hoặc mức sử dụng quá cao** bởi các tiến trình cụ thể
* **Các chỉ số hiệu năng ở cấp guest** để khắc phục sự cố

### Chiến lược giám sát kết hợp

Để quản lý bộ nhớ toàn diện:

1. **Lập kế hoạch dung lượng**: Dùng dữ liệu phân bổ của VergeOS để lập kế hoạch mở rộng phần cứng
2. **Tối ưu hóa hiệu năng**: Dùng dữ liệu ở cấp guest để tinh chỉnh ứng dụng
3. **Khắc phục sự cố**: So sánh phân bổ ở host với mức sử dụng ở guest để xác định vấn đề
4. **Tối ưu hóa tài nguyên**: Điều chỉnh kích thước VM dựa trên các mẫu sử dụng thực tế của guest

## Ví dụ thực tế

Hãy xem xét tình huống sau:

* **Bộ nhớ được cấp phát cho VM**: 8GB (hiển thị trong VergeOS)
* **Windows Task Manager**: Hiển thị đã dùng 3GB
* **Host vật lý**: Có 8GB được dành riêng cho VM này

Đây là hành vi bình thường và được mong đợi. Bảng điều khiển VergeOS hiển thị chính xác rằng 8GB bộ nhớ vật lý đã được cam kết cho VM này, trong khi hệ điều hành guest hiển thị mức sử dụng nội bộ của phần bộ nhớ đã cấp phát đó.

## Khắc phục sự cố bộ nhớ

### Khi VergeOS hiển thị mức sử dụng bộ nhớ cao

Nếu VergeOS hiển thị mức sử dụng bộ nhớ cao:

1. **Xem lại mức cấp phát cho VM**: Kiểm tra xem VM có được cấp phát quá mức so với nhu cầu thực tế hay không
2. **Lập kế hoạch mở rộng dung lượng**: Tỷ lệ cấp phát cao cho thấy cần thêm RAM vật lý
3. **Tối ưu hóa kích thước VM**: Cân nhắc giảm cấp phát cho các VM sử dụng chưa hết

### Khi hệ điều hành guest hiển thị áp lực bộ nhớ

Nếu ứng dụng báo cáo sự cố bộ nhớ trong khi VergeOS cho thấy còn dung lượng cấp phát khả dụng:

1. **Kiểm tra cấu hình hệ điều hành guest**: Xác minh VM có đủ bộ nhớ được cấp phát
2. **Xem lại yêu cầu của ứng dụng**: Đảm bảo đã cấp phát đủ bộ nhớ
3. **Giám sát rò rỉ bộ nhớ**: Tìm các ứng dụng tiêu thụ bộ nhớ quá mức theo thời gian

### Các sự cố hiệu năng liên quan đến bộ nhớ

Đối với các vấn đề hiệu năng liên quan đến bộ nhớ:

1. **Xác minh mức cấp phát phù hợp**: Đảm bảo VM được cấp phát đủ bộ nhớ
2. **Kiểm tra áp lực bộ nhớ trên host**: Tránh cấp phát vượt mức tổng RAM vật lý
3. **Xem xét tác động lên lưu trữ**: Áp lực bộ nhớ có thể làm tăng hoạt động swap

## Các phương pháp tốt nhất để quản lý bộ nhớ

### Điều chỉnh kích thước máy ảo phù hợp

* Bắt đầu với mức cấp phát bộ nhớ được nhà sản xuất khuyến nghị
* Giám sát mức sử dụng ở cấp guest theo thời gian để xác định cơ hội tối ưu hóa
* Tránh cấp phát quá nhiều gây lãng phí tài nguyên vật lý
* Dành đủ vùng đệm cho các đợt tăng đột biến bộ nhớ và tăng trưởng

### Lập kế hoạch dung lượng

* Lập kế hoạch dung lượng bộ nhớ vật lý dựa trên tổng mức cấp phát VM, không phải mức sử dụng ở guest
* Tính đến phần tải của hypervisor và yêu cầu bộ nhớ hệ thống
* Duy trì 10-15% dung lượng trống cho bảo trì và nhu cầu bất ngờ
* Cân nhắc tăng trưởng trong tương lai khi định kích thước các node mới

### Tối ưu hóa hiệu năng

* Cấp phát đủ bộ nhớ để tránh áp lực bộ nhớ lên hệ điều hành guest
* Sử dụng công cụ giám sát bộ nhớ bên trong VM để xác định cơ hội tối ưu hóa
* Xem xét các mẫu tải công việc khi lập kế hoạch cấp phát bộ nhớ
* Kiểm tra hiệu năng ứng dụng với các mức cấp phát bộ nhớ khác nhau

## Các bước tiếp theo

Để hiểu sâu hơn về quản lý bộ nhớ của VergeOS:

* [**Giám sát tài nguyên node**](/run-the-platform/system-administration/nodes-overview.md): Tìm hiểu cách giám sát tài nguyên vật lý của node
* [**Tối ưu hóa hiệu năng VM**](/run-the-platform/virtual-machines/vm-best-practices.md): Khám phá các kỹ thuật tối ưu hóa hiệu năng VM

{% hint style="info" %}
**Tài nguyên bổ sung**

Đối với các câu hỏi cụ thể về việc cấp phát bộ nhớ trong môi trường của bạn, hãy liên hệ đội ngũ hỗ trợ VergeOS tại <support@verge.io> hoặc xem các phần giám sát hiệu năng trong tài liệu sản phẩm.
{% endhint %}

***

{% hint style="info" %}
**Thông tin tài liệu**

* Cập nhật lần cuối: 2024-08-15
* Phiên bản VergeOS: 4.12.6+
  {% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.verge.io/knowledge-base/vi/virtual-machines/guest-memory-management.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
