Tóm tắt
Một vùng trao đổi (được gọi là phân vùng trao đổi, tệp hoán đổi hoặc tệp trang) chỉ là một cơ chế để tăng bộ nhớ vật lý mà HĐH có thể định địa chỉ.
Nếu bạn có ít RAM vật lý khả dụng và trên máy hiện nay, tôi sẽ nói nếu bạn có RAM 4 GB trở xuống. Sau đó, bạn có thể nên có một trao đổi. Nhưng điều này phụ thuộc vào khối lượng công việc của bạn và cách bạn sử dụng máy của bạn.
Nếu bạn có nhiều hơn 4GB RAM, rất có thể hệ thống của bạn có thể không bao giờ sử dụng trao đổi. Vì vậy, nếu trao đổi được kích hoạt hay không, điều này sẽ không thay đổi nhiều.
Mặc dù điều này phụ thuộc vào các yếu tố khác, nhưng máy của bạn sẽ hoạt động càng lâu thì hệ điều hành sẽ trao đổi một phần nhỏ RAM chưa sử dụng sang trao đổi mặc dù có rất nhiều chỗ còn lại rõ ràng. Tuy nhiên, thường hệ thống sử dụng RAM "miễn phí" cho bộ đệm tệp và các nội dung khác và một số khối lượng công việc có thể khiến bộ đệm tệp của bạn sử dụng tất cả RAM có sẵn.
Thông tin lai lịch
Bất cứ cách nào điều gì sẽ xảy ra nếu bạn vô hiệu hóa trao đổi và bộ nhớ của bạn được sử dụng hoàn toàn? Chà, lần sau khi một ứng dụng yêu cầu thêm bộ nhớ (như với malloc hoặc realloc), nó sẽ nhận được một lỗi! Nếu nó được mã hóa chính xác, ứng dụng sẽ phát hiện ra nó, nhưng xử lý một lỗi như vậy và chấm dứt chương trình một cách duyên dáng vẫn có thể là một thách thức! Tuy nhiên, nhiều nhà phát triển không kiểm tra phân bổ bộ nhớ thành công và thường ứng dụng gặp sự cố ngay khi bộ nhớ không được phân bổ này sẽ được sử dụng. Vì vậy, có khả năng lớn là ứng dụng sẽ bị sập và thực tế là nhiều ứng dụng sẽ bị sập vì bạn có nhiều hơn một ứng dụng thường chạy cùng một lúc. Hy vọng rằng, bản thân hạt nhân nên được miễn dịch, nhưng theo kinh nghiệm của tôi thì không phải lúc nào cũng như vậy.
Nếu bạn có trao đổi, bạn sẽ có hành vi tương tự , nhưng bạn có giới hạn cao hơn nên rất có thể bạn sẽ không đạt đến giới hạn đó.
Tôi có 2 máy với 8 và 16 GB RAM. Việc sử dụng cá nhân của tôi cho các máy này sẽ không bao giờ khiến tôi sử dụng hết RAM này (ngày nay! Có lẽ trong một vài năm có thể khác). Lý do duy nhất tôi đạt được giới hạn RAM vật lý là một quá trình trở nên bất hảo và tiêu tốn hết RAM. Không có trao đổi là một cứu trợ, hạt nhân sẽ nhanh chóng giết chết quá trình lừa đảo ngay khi nó đạt đến giới hạn RAM. Nếu bạn có trao đổi, bạn sẽ có được trải nghiệm đau đớn (có thể không phải trên SSD ...) vì hệ thống của bạn sẽ trao đổi và trao đổi và trao đổi và đôi khi hoàn toàn không phản hồi cho đến khi hy vọng hạt nhân của bạn giết chết thủ phạm!
Tư vấn
Bạn không nên sợ hãi bởi những người nói với bạn điều gì đó sai lầm khủng khiếp có thể xảy ra nếu bạn loại bỏ trao đổi. Nếu bạn làm như vậy, không gian địa chỉ vật lý của bạn sẽ bị giảm, giống như nếu bạn chuyển từ 4 GB RAM xuống còn 2 GB. Bạn sẽ làm một điều như vậy? Sau đó, bạn không nên loại bỏ trao đổi. Tuy nhiên, bạn có thể quyết định giới hạn nó, và điều đó sẽ là khôn ngoan .
Nếu một người nghĩ rằng khối lượng công việc của anh ta có thể khiến anh ta sử dụng gần hoặc nhiều hơn RAM vật lý có sẵn hoặc nếu một người cần nhiều I / O (đọc / ghi vào đĩa), thì nên giữ lại trao đổi.
Khi giữ trao đổi, người dùng nên cố gắng đặt giới hạn cho số lượng bộ nhớ mà một quá trình có thể sử dụng. Trên hệ thống Linux, người ta có thể sử dụng các giới hạn bộ nhớ của nhóm để tránh việc một số tiến trình vượt khỏi tầm kiểm soát, tôi không biết tương đương trên OS X nhưng đó là cách.
Tuy nhiên, nếu một người có quá nhiều bộ nhớ khả dụng cho khối lượng công việc của mình, thì anh ta có thể vô hiệu hóa trao đổi một cách an toàn hoặc anh ta có thể giữ nó. Nó sẽ không thay đổi nhiều về mặt hiệu suất bởi vì nếu hệ thống không sử dụng trao đổi, thì bạn sẽ không bị ảnh hưởng bởi sự sụt giảm hiệu suất (đặc biệt là hiển thị trên đĩa cứng quay cũ, ít hơn trên SSD).
Sử dụng thủ thuật tương tự như trên để cố gắng đặt giới hạn bộ nhớ cho mỗi quy trình hoặc nhóm quy trình cũng được hưởng lợi trong trường hợp có quá nhiều RAM có sẵn.
Ví dụ của riêng tôi
Tôi có một PC cũ với RAM 1 GB, ở đó tôi có một trao đổi lớn: 4 GB để tôi có thể chạy Firefox và các ứng dụng khác trên đó. Tôi có xu hướng sử dụng càng ít ứng dụng (hoặc tab trong Firefox) càng tốt để có trải nghiệm người dùng chính xác.
Tôi có một máy chủ nhỏ với RAM 8 GB. Ở đó tôi biết chính xác khối lượng công việc của mình và tôi không muốn máy chủ của mình bị chậm lại vì một quy trình có sự bất hảo và đang chiếm hết bộ nhớ. Ở đó tôi không có rào cản giới hạn trao đổi và bộ nhớ cgroup, vì vậy các ứng dụng hoặc dịch vụ có thể bị sập nhưng không phải kernel. Btw, đây là một máy Linux.
Sau đó, tôi có máy Mac với RAM 16 GB. Tôi không phải là người dùng duy nhất của nó và chúng tôi sẽ không phải chờ đợi khi chuyển đổi người dùng. Ở đó chúng tôi có trao đổi, rất khó để tôi lập kế hoạch tải công việc của những người dùng khác của máy tính này. Ngay cả khi tôi sẽ là người duy nhất tôi sẽ sử dụng trao đổi. Tôi thường chạy một số máy ảo và sử dụng các ứng dụng tiêu thụ bộ nhớ, nhưng không phải tất cả cùng một lúc, vì vậy tôi sẽ không bận tâm đến việc hệ điều hành trong một ứng dụng không sử dụng để tôi có thể nhận được I / O đĩa nhanh hơn hoặc khởi chạy một máy ảo khác. Cho đến bây giờ, tôi vẫn chưa thấy chiếc máy này hoán đổi!