Linux VM trong VMware / ESX có nên phân vùng trao đổi không?


18

Trên thiết lập VMware ESX, sự khác biệt của các tùy chọn này là gì?:

  • Máy ảo Linux có RAM 1 GB và phân vùng trao đổi 1 GB và máy ảo sử dụng ram 1,5 GB
  • Máy ảo Linux có RAM 1 GB và không có phân vùng trao đổi và VM sử dụng ram 1,5 GB

Ý tôi là, trong cả hai trường hợp trao đổi đang được sử dụng;

  • trong trao đổi đầu tiên được thực hiện cho phân vùng trao đổi linux
  • trong trường hợp thứ hai, VMware sẽ trao đổi 512MB sang nhóm lưu trữ VMware.

Vậy có điểm nào trong việc cung cấp cho Linux VM một phân vùng trao đổi không?


Bạn đang hỏi liệu máy chủ ESX có cần trao đổi hay không, hoặc cách xử lý với VM? Có thể muốn giải thích về câu hỏi để xác định ý của bạn.
Bart Silverstrim

Hy vọng được thực hiện bây giờ.
Sandra

Câu trả lời:


15

Bỏ qua thực tế rằng mọi người đang đối phó với các lý do cụ thể của hệ điều hành Tôi có hai lý do tại sao không nên chạy với phân vùng / tệp trao đổi.

  1. Nếu bạn có 1,5 GB RAM được phân bổ cho VM không có tệp / phân vùng không gian và nó muốn sử dụng 1,5 GB + 1 MB thì nó sẽ báo lỗi hết bộ nhớ. Với không gian hoán đổi, nó sẽ có thể hoán đổi dữ liệu ra khỏi bộ nhớ hoạt động và vào đĩa.
  2. HĐH khách thực hiện công việc quản lý bộ nhớ tốt hơn nhiều so với máy chủ. Đây là lý do tại sao công nghệ như khinh khí cầu tồn tại bởi vì Chủ nhà có thể đưa ra những phỏng đoán có giáo dục về những gì bộ nhớ không cần thiết ngay bây giờ nhưng khách biết ở mức độ thông minh hơn nhiều (điều này giúp bộ nhớ OS không bị tráo đổi có thể giết chết hiệu suất của bạn).

10

Vâng. Đó là cách Unix.

Unix (thậm chí Linux) hy vọng có thể trao đổi.
Những điều tồi tệ xảy ra khi hệ thống không thể trao đổi (vì nó được định cấu hình sai mà không có phân vùng trao đổi hoặc do không gian hoán đổi đã đầy). Trong Linux, một trong những điều tồi tệ này là Out Of Memory Killer, thứ sẽ đâm một con dao vào phía sau chương trình mà nó nghĩ là sử dụng nhiều RAM nhất (máy chủ cơ sở dữ liệu là mục tiêu yêu thích).


4

Bạn đã /proc/sys/vm/overcommit_memorythiết lập những gì? Từ tài liệu kernel:

0       -       Heuristic overcommit handling. Obvious overcommits of
                address space are refused. Used for a typical system. It
                ensures a seriously wild allocation fails while allowing
                overcommit to reduce swap usage.  root is allowed to
                allocate slightly more memory in this mode. This is the
                default.

1       -       Always overcommit. Appropriate for some scientific
                applications.

2       -       Don't overcommit. The total address space commit
                for the system is not permitted to exceed swap + a
                configurable percentage (default is 50) of physical RAM.
                Depending on the percentage you use, in most situations
                this means a process will not be killed while accessing
                pages but will receive errors on memory allocation as
                appropriate.

Do đó, nếu bạn đang sử dụng 1 thì không có sự khác biệt. Nếu bạn đang sử dụng 2 và không có tệp hoán đổi linux thì sẽ không có quá trình nào có thể phân bổ 512M bộ nhớ (ảo). Kết quả không rõ ràng cho 0.

Chỉnh sửa: Từ http://utcc.utoronto.ca/~cks/space/blog/linux/LinuxVMOvercommit đây là cách 0 hoạt động:

Heuristic overcommit cố gắng tìm ra bao nhiêu bộ nhớ mà hệ thống có thể cung cấp cho bạn nếu nó lấy lại tất cả bộ nhớ có thể và không có quá trình nào khác sử dụng nhiều RAM hơn hiện tại; nếu bạn yêu cầu nhiều hơn thế, phân bổ của bạn sẽ bị từ chối. Cụ thể, số 'bộ nhớ trống' lý thuyết được tính bằng cách thêm dung lượng trao đổi miễn phí, RAM miễn phí (dưới 1/32 nếu bạn không root) và tất cả không gian được sử dụng bởi bộ đệm bộ đệm hợp nhất và dữ liệu kernel được gắn nhãn là có thể thu hồi được (ít hơn một số trang dành riêng).

Vì vậy, nó sử dụng trao đổi trong tính toán là tốt. Nói chung, tôi sẽ làm theo khuyến nghị của RHEL về:

M = Amount of RAM in GB, and S = Amount of swap in GB, then
If M < 2
    S = M *2
Else
    S = M + 2

1
cat /proc/sys/vm/overcommit_memorytrả lại 0. Bạn đề nghị gì về overcommit_memorygiá trị và trao đổi / không trao đổi?
Sandra

3

Các phân vùng hoán đổi có thể có khả năng nhanh hơn, đặc biệt là trong trường hợp đĩa gốc gần đầy và bạn không thể tạo một tệp hoán đổi trong một mảnh mà không bị phân mảnh, hãy để riêng chi phí có thể được tạo bởi hệ thống tệp và, nếu có thể, những thứ như LVM.

Nhưng hiệu năng của cả hai máy sẽ giảm nếu bạn giữ 33% yêu cầu bộ nhớ trên đĩa.


Khi bạn nói "đĩa gốc". Bạn có nghĩa là trên máy chủ ESX, nơi ESX tạo các tệp hoán đổi của nó?
Sandra

Không, ý tôi là đĩa hệ thống của VM chứa hệ thống tệp gốc. Rốt cuộc, đó là nơi trao đổi sẽ xảy ra mà không có phân vùng trao đổi chuyên dụng.
Sven

Lưu ý, câu trả lời này đang tranh luận giữa phân vùng trao đổi và tệp hoán đổi. Tôi nghĩ câu hỏi là liệu bạn có cần trao đổi gì không.
dùng606723

@ user606723: Nếu bạn hoàn toàn không sử dụng trao đổi, bạn sẽ hết lỗi bộ nhớ nếu bạn cố phân bổ nhiều bộ nhớ hơn VM và việc sử dụng 1,5 GB với tình trạng vật lý 1 GB có thể xảy ra.
Sven

@SvenW, Có, nhưng không có gì chắc chắn rằng điều đó có khả năng xảy ra. Đó là để quản trị viên quyết định.
dùng606723

0

Vui lòng xem liên kết sau- https://help.ubfox.com/community/SwapFaq

Về cơ bản, trừ khi bạn cần ngủ đông hoặc sử dụng nhiều bộ nhớ hơn so với việc bạn phân bổ cho VM, không có lợi thế đáng kể nào cho phân vùng trao đổi.

Tôi đã không sử dụng phân vùng / tệp trao đổi trên bất kỳ máy linux nào của tôi trong nhiều năm.


1
Câu hỏi không phải là về trao đổi / không trao đổi. Đó là về cách VMware xử lý trao đổi.
Sandra

0

Lợi thế rõ ràng cho việc hoán đổi là khi máy của bạn gặp sự cố, bạn vẫn có thể tạo ra một bãi chứa sự cố. Sửa lỗi cho tôi nếu tôi sai, nhưng điều này không thể xảy ra nếu không trao đổi. Tất nhiên đây không phải là VMWare cụ thể mà là áp dụng ở mọi nơi. Tôi cảm thấy như nó có thể quan trọng để chỉ ra.

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.