Bạn đã gặp phải tiến trình có tên “Vmmem” trong Windows Task Manager chưa ? Nó ngốn quá nhiều CPU, RAM và các tài nguyên hệ thống khác, điều này khiến bạn lo ngại? Đây là một tiến trình được Windows sử dụng để chứng minh máy ảo tiêu thụ bao nhiêu tài nguyên.
Do đó, nếu nó cho thấy mức tiêu thụ CPU hoặc RAM quá nhiều thì đó là nguyên nhân gây ra lỗi cho máy ảo của bạn. Trong bài viết này, chúng ta sẽ khám phá tiến trình này chi tiết hơn và chỉ cho bạn cách bạn có thể giảm mức tiêu thụ tài nguyên của nó.
Tiến trình Vmmem làm gì ?
Theo một bài đăng trên Microsoft DevBlogs, Windows tạo ra tiến trình Vmmem để hiển thị tài nguyên mà máy ảo tiêu thụ. Khi bạn thấy tiến trình này tiêu tốn quá nhiều tài nguyên trong Task Manager, máy ảo của bạn thực sự đang sử dụng các tài nguyên này, tiến trình này chỉ đóng vai hiển thị mà thôi.
Thông thường, bạn sẽ thấy tiến trình này đang xuất hiện khi bạn chủ động chạy một máy ảo trong Hyper-V Manager hoặc sử dụng WSL (Windows Subsystem for Linux) để chạy các file thực thi nhị phân Linux. Nói chung, nó không nên làm quá tải tài nguyên của bạn, nhưng khi điều đó xảy ra, tức là có gì đó không ổn.
Nếu bạn thấy mức tiêu thụ tài nguyên cao trong Task Manager cho tiến trình này, hãy xem có thể làm gì để khắc phục nó.
Trước tiên, hãy tìm hiểu nguyên nhân gây ra vấn đề
Đầu tiên, xác định máy ảo hoặc chương trình nào đứng sau việc tiêu thụ tài nguyên cao của tiến trình Vmmem. Nếu bạn chỉ chạy một trình quản lý máy ảo, thì bạn sẽ tìm thấy nguyên nhân sự cố ngay lập tức. Tuy nhiên, nếu bạn đang chạy trình quản lý máy ảo và WSL đồng thời, bạn sẽ cần xác định chương trình nào đang gây ra sự cố.
Để tìm hiểu, hãy đóng các máy ảo trong Hyper-V Manager và xem điều đó có giúp giảm mức tiêu thụ tài nguyên hay không. Tương tự, bạn có thể tắt các công cụ WSL và xem tác động của chúng.
Khi đóng một máy ảo trong Hyper-V Manager, tiến trình Vmmem sẽ biến mất khỏi Task Manager ngay lập tức, điều đó có nghĩa là tiến trình này không còn tiêu thụ tài nguyên nữa. Ngược lại, khi đóng các công cụ Linux hoặc WSL, tiến trình Vmmem sẽ mất một thời gian để biến mất, vì vậy hãy đợi một chút trước khi đánh giá tác động của việc đóng nó.
Khi bạn đã xác định được thủ phạm chính, hãy tham khảo hướng dẫn bên dưới giải thích cách giảm tiêu thụ tài nguyên máy ảo trong Hyper-V Manager và WSL.
Cách giảm mức tiêu thụ tài nguyên của máy ảo trong Hyper-V Manager
Nếu tiến trình Vmmem cho thấy mức tiêu thụ tài nguyên cao trong Task Manager khi chạy máy ảo trong Hyper-V Manager, thì trước tiên hãy áp dụng các bước kiểm tra sơ bộ sau:
- Bật và tắt máy ảo của bạn trong Hyper-V Manager.
- Khởi động lại Hyper-V Manager sau khi đóng nó.
- Chỉ chạy một máy ảo trong Hyper-V Manager nếu bạn có nhiều máy.
- Nếu bạn đang đồng thời sử dụng một ứng dụng máy ảo khác với Hyper-V Manager, hãy đóng nó.
Nếu các kiểm tra trên không làm giảm mức tiêu thụ tài nguyên, bạn có thể kiểm tra bằng cách xem tiến trình Vmmem tiêu thụ bao nhiêu tài nguyên trong Task Manager, hãy giới hạn việc phân bổ tài nguyên của máy ảo trong Hyper-V Manager. Đây là cách thực hiện:
- Khởi chạy Hyper-V Manager.
- Nhấp chuột phải vào máy ảo của bạn và chọn
- Trên thanh bên trái, nhấp vào
- Đặt dung lượng RAM tối đa mà máy ảo có thể sử dụng.
- Bỏ chọn hộp Enable Dynamic Memory hoặc giới hạn RAM động mà máy ảo có thể sử dụng ở đó.
Tương tự, bạn có thể thay đổi các thông số khác để hạn chế máy ảo chỉ sử dụng các tài nguyên được chỉ định và không tạo áp lực lên máy tính của bạn. Nếu việc điều chỉnh các cài đặt này không giúp giảm mức tiêu thụ tài nguyên, bạn có thể bỏ Hyper-V Manager và sử dụng một trình quản lý máy ảo khác, chẳng hạn như VirtualBox hoặc VMware.
Hầu hết các trình quản lý ảo của bên thứ ba hiển thị mức tiêu thụ bộ nhớ trong Task Manager bằng cách sử dụng những tiến trình khác với tiến trình Vmmem. Ví dụ, VMWare sử dụng một tiến trình có tên là VMware-vmx.exe. Do đó, hãy để mắt đến chúng và nếu chúng tiêu tốn quá nhiều tài nguyên, hãy hạn chế việc cấp phát bộ nhớ của chúng hoặc áp dụng các bản sửa lỗi được đề cập cho Hyper-V Manager.
Cách giảm tiêu thụ tài nguyên bằng các công cụ WSL và Linux
Tùy thuộc vào bản build Windows của bạn, WSL có thể có quyền sử dụng 50% đến 80% RAM, như được giải thích trong tài liệu của Microsoft. Do đó, bạn có thể tưởng tượng nó có thể tiêu thụ tài nguyên nhiều như thế nào, đó chính xác là những gì mà tiến trình Vmmem cố gắng chứng minh.
Nếu việc chạy Windows Subsystem for Linux hoặc các công cụ Linux cụ thể dẫn đến việc tiêu thụ nhiều tài nguyên, như được hiển thị trong tiến trình Vmmem, bạn có thể lấy lại bộ nhớ và khắc phục sự cố bằng cách làm theo các bước sau:
- Khởi động lại WSL theo cách thủ công
Một trong những cách dễ nhất để giải quyết việc tiêu thụ nhiều tài nguyên bởi các công cụ WSL hoặc Linux là khởi động lại chúng một cách đơn giản. Vì vậy, bạn nên đóng thủ công mọi công cụ Linux mà bạn đang mở ngay bây giờ, bao gồm cả chính WSL.
Chờ một chút và xem liệu quá trình Vmmem có ngừng hiển thị cho bạn mức tiêu thụ tài nguyên khổng lồ sau đó hay không. Nếu có, hãy khởi động lại các bản phân phối WSL và xem liệu tiến trình Vmmem có hoạt động giống như vậy không. Nếu vậy, hãy bỏ qua lần cách thứ hai và áp dụng luôn cách thứ ba.
Tuy nhiên, nếu bạn đóng WSL theo cách thủ công và nó không dừng tiến trình Vmmem trong Task Manager, bạn buộc phải tắt nó. Trong bản sửa lỗi tiếp theo, bài viết sẽ giải thích cách hoạt động.
- Buộc đóng WSL và khởi động lại nó
Để buộc đóng WSL, hãy làm theo các bước sau:
- Chạy Command Prompt với quyền admin.
- Nhập “wsl –shutdown”.
- Nhấn Enter.
Khởi động lại các bản phân phối WSL sau đó. Nếu khởi động lại WSL không khắc phục được sự cố, hãy tiến hành cách sửa chữa tiếp theo.
- Giới hạn tài nguyên theo cách thủ công cho WSL
WSL cũng có thể bị hạn chế về tài nguyên mà nó sử dụng để không làm hệ thống của bạn bị quá tải nhu cầu tài nguyên. Bạn chỉ có thể thực hiện việc này với WSL 2, chỉ hoạt động trên bản build Windows cao hơn 19041.
Nếu bản build Windows của bạn hỗ trợ WSL 2 và bạn đã cài đặt nó, bạn có thể giới hạn tài nguyên của nó bằng cách làm theo các bước sau:
- Chạy Windows Command Prompt với quyền admin.
- Nhập “wsl –shutdown” và nhấn
- Đóng Windows Command Prompt.
- Mở WSL.
- Sau khi thay thế tên người dùng của bạn, hãy nhập lệnh sau:
editor “$(wslpath “C:\Users\YourUsername\.wslconfig”)”
- Nhấn Enter.
- Nhập cấu hình sau: [wsl2] memory=5GB(giới hạn dựa trên kích thước RAM của bạn)
- Nhấn CTRL + X.
- Nhấn “Y” khi được nhắc lưu các thay đổi.
- Xác nhận vị trí bằng cách nhấn Enter một lần nữa.
- Lặp lại các bước từ 1 đến 3.
- Chạy lệnh sau sau khi khởi động lại WSL để xác nhận tài nguyên đã được cấp phát thành công.
free -h –giga
Với các bước trên, bạn có thể giới hạn việc sử dụng tài nguyên của WSL để không làm máy tính của mình quá tải.
Có thể kết thúc tiến trình Vmmem không ?
Task Manager không cho phép bạn đóng tiến trình Vmmem như các tác vụ thông thường. Nếu bạn cố gắng làm như vậy, bạn sẽ gặp phải lỗi. Để kết thúc tiến trình Vmmem, bạn cần đóng các máy ảo và WSL hoặc bất kỳ công cụ Linux nào của nó.
Đừng để máy ảo tiêu tốn tài nguyên của bạn!
Các thủ thuật được đề cập trong bài sẽ giúp bạn hạn chế việc tiêu tốn tài nguyên máy ảo. Sau khi bạn làm điều đó, tiến trình Vmmem sẽ không tiêu thụ tài nguyên cao trong Task Manager.
Lựa chọn một trình quản lý máy ảo xuất sắc là điều cần thiết để chạy các máy ảo một cách hiệu quả. Một trình quản lý máy ảo đáng tin cậy sẽ cung cấp cho bạn hiệu suất tối ưu, điều mà một trình quản lý máy ảo thông thường sẽ không làm được.