Tại sao tôi nên tắt tệp hoán đổi trong Mac OS X?


51

Tôi đã bắt gặp một chủ đề về việc cài đặt ổ SSD trong MacBook Pro.
Ai đó trong các ý kiến ​​cũng đề nghị vô hiệu hóa tệp hoán đổi nhưng không nói lý do:

sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
sudo rm /private/var/vm/swapfile*

Tôi tự hỏi tại sao người ta lại muốn vô hiệu hóa tệp hoán đổi trong Mac OS X.
Nó có tăng hiệu suất không? Ổn định?
Bất kỳ nhược điểm?

Cuối cùng, nó có ý nghĩa gì để vô hiệu hóa tập tin trao đổi khi không sử dụng SSD?


11
Nó thường bị vô hiệu hóa bởi những người ít hiểu biết hơn vì họ đã nghe trên một số blog rằng hiệu suất tăng vọt đã ném mái nhà. SSD cũng cung cấp một thử nghiệm tốt vì chúng vốn đã nhanh. Đừng làm điều này. Nó sẽ làm giảm sự ổn định, và theo thời gian dẫn đến những hậu quả thảm khốc. Cho đến ngày nay, tôi chưa thấy bất kỳ dữ liệu thực tế nào (hợp lệ và đáng tin cậy) cho thấy hiệu suất tăng. Và nó là một thành phần quan trọng của HĐH, cho dù bạn có 2 GB hay RAM hay 120.

2
Những hậu quả thảm khốc? Chỉ tò mò ... có vẻ như làm cho máy của tôi (MacBook Pro 4GB) nhanh hơn một tấn. Ví dụ, khi tôi mở các cửa sổ đầu cuối mới, không còn bất kỳ sự chặn nào nữa ... đó là ngay lập tức khi nó mất vài giây trước đó. Và tôi đã có thể mở gấp đôi số ứng dụng mà tôi thường sử dụng và không có gì xấu xảy ra.
cam80

4
màu cam80: Nguyên nhân thông thường của các cửa sổ đầu cuối chậm là quá trình đăng nhập tìm kiếm thông tin đăng nhập trước đó, có thể được sửa bằng hushlogin: apple.stackexchange.com/a/54167/22570 - bạn có tình cờ khởi động lại sau khi thay đổi cài đặt trao đổi không, có thể ? Không có lý do gì mà tốc độ cửa sổ đầu cuối sẽ được cải thiện bằng cách loại bỏ trao đổi.
Ken

Tôi hiểu rằng với một ổ SSD dung lượng nhỏ, bạn có thể muốn giải phóng không gian. Nhưng về mặt hiệu suất, SSD nhanh hơn HD rất nhiều vì vậy tôi không thấy việc vô hiệu hóa việc hoán đổi trong hệ điều hành dựa trên SSD sẽ thực sự cải thiện hiệu suất. Có kinh nghiệm nào về điều đó không? Cảm ơn.

1
Trong Super User, với câu trả lời được chấp nhận: Vô hiệu hóa Dynamic_pager của Mac? (2012-04-27)
Graham Perrin

Câu trả lời:


39

tự hỏi tại sao người ta lại muốn vô hiệu hóa tệp hoán đổi trong Mac OS X. Nó có tăng hiệu suất không? Ổn định? Bất kỳ nhược điểm?

Tôi cho rằng mọi người sẽ làm điều đó cho một ổ SSD vì những ổ đĩa đó không có tuổi thọ như các ổ đĩa quay từ tính tiêu chuẩn. Có số lượng chu kỳ ghi hạn chế hơn, do đó, có lẽ sử dụng chúng với tệp hoán đổi sẽ sử dụng hết các chu kỳ này nhanh hơn.

Cuối cùng, nó có ý nghĩa gì để vô hiệu hóa tập tin trao đổi khi không sử dụng SSD?

Nếu bạn có nhiều RAM, điều này có thể sẽ tăng tốc hiệu năng, nhưng nói chung nó không phải là một ý tưởng tốt . Nếu bạn chạy lên trần bộ nhớ, mọi thứ sẽ trở nên tồi tệ.

Ngoài ra, bộ nhớ có dây không được phát hành khi nó trở nên không hợp lệ, nó chỉ được phát hành khi sự kiện thoát trang được kích hoạt, điều này sẽ không xảy ra nếu Bộ nhớ ảo bị tắt. Vì vậy, sẽ không mất nhiều thời gian để tất cả bộ nhớ của bạn bị ngấu nghiến ngay cả khi nó không còn được sử dụng.


4
Hệ thống bộ nhớ ảo mac rất lười biếng ở chỗ nó chỉ tạo các tệp hoán đổi vật lý khi đến lúc trao đổi bộ nhớ thực. Bất cứ điều gì tăng tốc bạn có thể thấy bằng cách không phải trì hoãn mọi thứ để phù hợp với việc ghi để hoán đổi gần như chắc chắn sẽ được bù đắp bằng mức tăng tốc độ trước đó của việc trao đổi có sẵn ở nơi đầu tiên. Có trao đổi làm cho mac nhanh hơn. Phần còn lại của câu trả lời là tại chỗ - được thực hiện độc đáo!
bmike

2
@geotavros Hệ thống bộ nhớ ảo trong Mac OS X không hoạt động giống như Windows. Với 4GB bộ nhớ, tin tôi đi, máy Mac của bạn sẽ hoạt động nhanh hơn khi bật Bộ nhớ ảo. Vô hiệu hóa VM sẽ chỉ khiến bạn đau đầu và mất ổn định hệ thống.
ghoppe

3
FYI, một ổ SSD hiện đại với mức ghi và dung lượng khá (128 GB), được ghi liên tục, sẽ có giới hạn chu kỳ ghi được đo trong nhiều thế kỷ. Đó là một nỗi sợ hợp lý vào năm 2000 với các ổ SSD nhỏ, nguyên thủy, nhưng không còn nữa.
Ken

3
Đối với MacBookPro5,2 với bộ nhớ 8 GB, sự cải thiện hiệu năng là rất lớn. Đối với Snow Leopard hoặc Lion trong VirtualBoxVM, sự cải tiến là đáng kinh ngạc. Trong cả ba trường hợp, HĐH dường như sử dụng bộ nhớ theo cách giảm thiểu rủi ro đạt đến 'giới hạn' (nơi mọi thứ dừng lại một cách hiệu quả) nhưng rủi ro đó vẫn còn, vì vậy, thật tuyệt vời khi quan sát việc sử dụng trong Trình giám sát hoạt động.
Graham Perrin

2
Đối với thông tin VM (hoặc Bộ nhớ ảo) không nên bị nhầm lẫn với tệp hoán đổi. Windows, OS X, * BSD, Linux, nhiều Unix đều sử dụng bộ nhớ ảo. Thông thường, kiến ​​trúc của các HĐH này cung cấp VM cho mỗi tiến trình, bộ nhớ được cấp phát trong khu vực này và HĐH sẽ chú ý đặt bộ nhớ được phân bổ này lên RAM vật lý hoặc trao đổi khi HĐH thấy như vậy. Có hoặc không trao đổi có thể thay đổi theo cách này hoặc hiệu suất khác cho các tiêu chí khác nhau (tốc độ, khả năng đáp ứng, v.v.), điều này sẽ phụ thuộc vào khối lượng công việc của mỗi người chúng ta. Như người Anh nói: số dặm của bạn có thể thay đổi! Và rất nhiều trong trường hợp này.
Huygens

27

Lý do họ vô hiệu hóa tệp hoán đổi có khả năng là hoang tưởng về việc SSD có số lần ghi tối đa trên mỗi khối. Các tập tin hoán đổi có thể được ghi vào thường xuyên, có thể gây ra sự phân mảnh đĩa (cũng như sự phân mảnh hệ thống tệp) và cuối cùng, có thể khiến đĩa bị hỏng sớm hơn.

Điều đó nói rằng, đây chắc chắn là một trường hợp tối ưu hóa sớm. Nó gần như luôn luôn là một khủng khiếp , khủng khiếp ý tưởng để vô hiệu hóa tập tin trao đổi của bạn. Tệp hoán đổi có sẵn khi các chương trình đang chạy của bạn tiêu thụ nhiều bộ nhớ hơn mức bạn đã cài đặt. Nếu bạn tắt nó, bạn có thể không chạy được nhiều chương trình cùng một lúc (và giới hạn thấp hơn nhiều so với bạn mong đợi) hoặc bạn có thể gặp sự cố (như đóng băng và phải khởi động lại máy một cách khó khăn) khi bạn hết bộ nhớ

Cái sau tôi đã trải nghiệm (với tệp hoán đổi được bật) khi hết dung lượng đĩa. Tôi đã có một ổ đĩa 120 gig với ~ 3 hợp đồng biểu diễn miễn phí. Khi chơi Civilization IV (một trò chơi lớn, toàn màn hình), hệ thống đã hết dung lượng ổ cứng (~ 50 megs miễn phí) và đưa ra cửa sổ "tiêu diệt ứng dụng ngay bây giờ". Điều này đã ẩn đằng sau trò chơi toàn màn hình, vì vậy hệ thống chỉ bị khóa. Nếu tôi không thể ssh từ một máy Mac khác để giết một số ứng dụng từ xa, tôi đã phải giữ nút nguồn.


6
Tôi muốn nhắc lại ý tưởng tồi tệ này là gì. Hoán đổi được sử dụng ngay cả khi bạn có 16 GB RAM. Không nhiều, nhưng một chút xíu đã được viết thành trao đổi. Luôn luôn. Đó là một biện pháp bảo vệ. Và trong khi HĐH có thể chạy mà không có nó, bạn không thể chắc chắn ứng dụng của bên thứ 3 hoạt động như thế nào. HD được viết cho. Đó là một thực tế nếu cuộc sống. Và không, sẽ không có hiệu suất "thế giới thực" tăng. Đó là một giả dược.

4
@cksum Trong một số trường hợp máy chủ cụ thể, sysadins sẽ vô hiệu hóa tệp hoán đổi vì nó làm cho cấu hình cụ thể đó nhanh hơn, nhưng họ không làm điều đó mà không kiểm tra để đảm bảo cả hai (a) sẽ không hết bộ nhớ và (b) ) nó thực sự là nhanh hơn. Nhưng đó là một máy chủ được điều hành bởi các chuyên gia: nó không bao giờ cần thiết trên máy tiêu dùng.
CajunLuke

@cksum Tôi có thể đồng ý với câu đầu tiên của bạn, bạn đúng với câu thứ hai, thứ ba và thứ tư, nhưng phần còn lại là rác rưởi. Một hệ điều hành không hoán đổi để "bảo vệ an toàn", một hệ điều hành đang hoán đổi để tạo thêm bộ nhớ khả dụng cho quá trình hoạt động sẽ yêu cầu nó hoặc tăng tốc I / O bằng cách đệm dữ liệu, do đó bộ nhớ không hoạt động lâu có thể được giải phóng trong RAM. Khi bạn phát triển một ứng dụng, bạn yêu cầu bộ nhớ cho HĐH, bộ nhớ này là một phần của việc sử dụng bộ nhớ ảo của bạn, với tư cách là nhà phát triển hoặc ứng dụng mà bạn không biết nếu HĐH đưa bộ nhớ đó hoặc một phần của nó vào RAM vật lý hoặc trao đổi. (sẽ được tiếp tục)
Huygens

Vì vậy, nếu ứng dụng của bên thứ 3 yêu cầu nhiều bộ nhớ hơn mức có sẵn, HĐH sẽ báo lỗi. Điều này là độc lập với việc có trao đổi hay không. Có trao đổi sẽ đặt giới hạn cao hơn, đó là nó. Về hiệu suất, nếu bạn có 2 người dùng đăng nhập, nếu người dùng hoạt động sử dụng trình chỉnh sửa video với các tệp lớn, HĐH có thể bắt đầu đưa các trang bộ nhớ của người dùng không hoạt động vào trao đổi để tăng tốc các tác vụ được thực hiện bởi người dùng đang hoạt động. Bạn có được hiệu suất tốt hơn về tốc độ trong trường hợp này. Tuy nhiên, việc chuyển sang người dùng khác sẽ chậm hơn, HĐH phải đọc lại trao đổi. Đây không phải là giả dược!
Huygens

1
Tôi đã một lần (trong linux) quên thiết lập phân vùng trao đổi khi thiết lập. Khi tôi bị treo, tôi nghĩ đó là lỗi kernel - hóa ra đó là việc thiếu bộ nhớ trao đổi khi chơi mincecraft. sử dụng trao đổi.
Wyatt8740

12

Bạn có hai câu trả lời tuyệt vời giải thích tại sao đây là một ý tưởng tồi trong hầu hết các trường hợp hệ thống có thể ghi vào thiết bị lưu trữ.

Lý do bạn có thể vô hiệu hóa trao đổi là vì hệ thống có thể chạy trên phương tiện chỉ đọc như CD, DVD, hình ảnh mạng bị khóa bằng NetBoot hoặc fob USB chỉ đọc như trình cài đặt Lion mới hoặc fob phục hồi được cung cấp với một số máy Mac thiếu quang ổ đĩa.

Có bộ nhớ ảo có nghĩa là hệ thống có thể chạy nhanh hơn đáng kể và sử dụng ít RAM hơn khi nhiều chương trình sử dụng cùng một mã thư viện chung. Mỗi chương trình nghĩ rằng nó có một bản sao riêng của tất cả các mã cần thiết, nhưng khi bộ nhớ ảo tồn tại, hệ thống có một cách hay để ánh xạ cùng RAM vật lý vào các chương trình khác nhau.

Vô hiệu hóa trao đổi sẽ ngăn mac sử dụng một phần nhỏ trong ổ đĩa của bạn làm bộ đệm cho một số bộ nhớ đã được tính toán nhưng chương trình không đủ thông minh để tự ghi các kết quả đó vào bộ đệm phù hợp.

Nếu bạn có một bản sao lưu và thời gian để thử nghiệm, tại sao không tắt nó đi và xem trải nghiệm của bạn thay đổi như thế nào.

Tôi sẽ tiếp tục trao đổi ngay cả khi tôi biết chắc chắn mình phải trả tiền cho một ổ đĩa mới hàng năm. Tốc độ mà trao đổi mang lại cho tôi là LỚN. Điều này không phải lúc nào cũng như vậy, và tại thời điểm hệ thống bị đập hoặc phân trang - bạn có thể có điều ngược lại. Nhiều người chọn chạy mà không trao đổi để họ gặp lỗi phân bổ bộ nhớ thay vì để máy Mac của họ bắt đầu phân trang vì điều đó có thể làm chậm máy khi mọi thứ không chạy trơn tru.

Trường hợp của bạn với ổ SSD có thể khác, vì vậy hãy cho chúng tôi biết nếu bạn dùng thử.


2
Tôi tìm thấy điều ngược lại, một khổng lồ tăng tốc khi dynamic_pager được vô hiệu hóa . Ảnh chụp màn hình hiện tại tại apple.stackexchange.com/a/60661/8546 hiển thị kích thước bộ nhớ ảo và số trang được đo trong khi daemon bị vô hiệu hóa (trong khi các tệp hoán đổi không được sử dụng).
Graham Perrin

Chính xác những gì đang được đo để xác định tăng tốc? (Hoặc bạn có thấy sự vắng mặt của độ trễ hoặc độ trễ trong giao diện người dùng hoặc thứ gì khác không dễ định lượng hoặc đo lường được không?)
bmike

Không cần đo lường: với Lion, hầu hết mọi thứ dường như nhanh hơn đáng kể - đủ để tôi sử dụng từ khổng lồ . Gần đây hơn: 10.8 trong VirtualBoxVM, ví dụ, để đăng nhập và tiếp tục Trình giám sát hoạt động mất mười sáu giây dynamic_pager, không có mười hai giây. Để so sánh rộng hơn và đo lường hơn, chúng tôi có thể sử dụng Phoronix Test Suite hoặc Geekbench .
Graham Perrin

9

Tôi sẽ là người theo dõi ở đây: Tôi đã vô hiệu hóa trao đổi trên macbook pro unibody cuối năm 2008 của tôi và nó đã cải thiện hiệu suất đáng chú ý: Ít phải chờ đợi, chuyển đổi nhanh hơn giữa các ứng dụng.

Tâm trí bạn, tôi để mắt đến bộ nhớ trống của mình và tôi đã cài đặt 6GB. Vài lần tôi chạm giới hạn bộ nhớ, hệ thống bị sập :-D

Trên MacBook Air mới của tôi, tôi không mơ về việc vô hiệu hóa trao đổi, nó đã nhanh chóng được kích hoạt và nó chỉ có 4GB để bắt đầu.

Một lý do chính đáng khác khiến mọi người vô hiệu hóa trao đổi trên SSD là vì họ có được những ổ SSD nhỏ và cần tất cả dung lượng mà họ có thể có. Trong mọi trường hợp, đừng làm điều đó.


Tuyệt vời để có kinh nghiệm thực tế nơi này làm việc. Cam kết RAM trên máy khi hoán đổi bị vô hiệu hóa là gì? Điều gì đã xảy ra khi bạn mở nhiều ứng dụng hơn mức vừa với RAM? Bạn đã có bao nhiêu RAM và ứng dụng nào sẽ chạy trong không gian đó một cách thoải mái mà không có lỗi?
bmike

1
@bmike, không chắc chắn, hệ thống gặp sự cố :-D, 6GB và tất cả những cái tôi sử dụng :). Khẩu độ hoặc XCode là những bộ nhớ thực và đôi khi chúng có thể vượt qua hệ thống nhưng Skype, Mail, Adium, Safari, Chrome, iTunes và OmniF Focus đều vừa vặn ...
w00t

6

Kinh nghiệm của tôi tương tự như w00t. Tôi đã vô hiệu hóa tệp hoán đổi trên SL và Lion vì hiệu suất tăng đối với tôi. Việc sử dụng có dây sẽ vượt khỏi tầm kiểm soát sau một tuần hoặc lâu hơn nhưng việc khởi động lại đơn giản sẽ khắc phục điều đó. Tôi không có ổ SSD nhưng ổ đĩa chậm 5400rpm. Tuổi thọ của SSD không thực sự tệ như mọi người cố gắng làm cho chúng ra ngoài. Nếu bạn đang làm điều đó đơn giản chỉ vì bạn sợ hao mòn ổ SSD của mình, vui lòng xem: http://www.anandtech.com/show/4159/ocz-vertex-3-pro-preview-the-first-sf2500- ssd / 2http://cransities.intel.com/thread/21717?tstart=0 Intel đánh giá các ổ đĩa của họ trên 20GB mỗi ngày, mỗi ngày, tối đa 5 năm trên ổ 80gb. Ổ đĩa có kích thước lớn hơn sẽ kéo dài lâu hơn. Người dùng trung bình thậm chí không sử dụng 10GB / ngày.

Tôi đảm bảo giám sát việc sử dụng bộ nhớ 4GB của tôi với iStat Menus và sử dụng tập lệnh Automator với lệnh bash "purge" (yêu cầu cài đặt Xcode) để xóa bộ nhớ không hoạt động và thường xuyên mở thêm bộ nhớ trống. Một vài lần tôi đã có các ứng dụng bị rò rỉ bộ nhớ sử dụng hết RAM, tôi đã phải thực hiện thiết lập lại cứng. Những lần hiếm hoi đó xảy ra và việc tăng tốc nói chung làm cho nó đáng để giữ cho tập tin hoán đổi bị vô hiệu hóa đối với tôi. Tôi nhận ra rằng tôi không thể có nhiều ứng dụng mở cùng một lúc vì điều này như đã được nêu bởi những người khác nhưng tôi có thể làm việc với điều đó.


Phạm vi bộ nhớ có một tùy chọn để tự động lọc. (nếu Dynamic_pager được bật, tôi không cho phép thanh trừng.)
Graham Perrin

5

Chỉ cần ném 2 xu của tôi cho những người muốn vô hiệu hóa trao đổi BECAUSE của các ổ SSD nhỏ: chế độ ngủ sử dụng nhiều dung lượng đĩa hơn.

Và, đối với những người lo ngại về tuổi thọ hạn chế của SSD (đặc biệt là những người có chip SSD và MBA cứng có thể thay thế), nếu máy tính của bạn ngủ nhiều lần mỗi ngày, việc viết lại giấc ngủ có thể là một vấn đề đáng lo ngại. Máy tính xách tay của tôi ngủ một nửa tá / ngày một cách dễ dàng. Điều đó ghi 48GB dữ liệu vào ổ SSD của tôi hàng ngày.

Giải pháp trong mỗi trường hợp là vô hiệu hóa chế độ ngủ đông, sau đó xóa tệp ngủ chung lớn bằng RAM đã cài đặt của bạn (8GB trong trường hợp của tôi).

Nguy cơ nhược điểm: nếu pin của bạn chết trong khi máy tính xách tay của bạn đang ngủ, trạng thái hiện tại của bạn sẽ bị mất. Điều này sẽ tương đương với một khởi động lại cứng bắt buộc. Không có tác hại vật lý cho máy tính xách tay, chỉ là mất năng suất. Nếu bạn tắt chế độ ngủ đông, sau đó hết pin và không thể sạc, chỉ cần có mã tiện dụng để kích hoạt chế độ ngủ đông!

Để tắt chế độ ngủ đông, trong Terminal, lệnh như sau:

 sudo pmset -a hibernatemode 0

Để kích hoạt chế độ ngủ đông, lệnh như sau:

 sudo pmset -a hibernatemode 3

Để xóa chế độ ngủ cuối cùng để giải phóng không gian SSD / HDD (chỉ có ý nghĩa nếu bạn tắt chế độ ngủ đông, một cái mới khác sẽ chiếm không gian đó vào lần sau khi tính toán của bạn ngủ):

 sudo rm -rf /var/vm/sleepimage

Nguồn: người đàn ông chiều


3

Vô hiệu hóa trao đổi làm tăng hiệu suất. Ví dụ, tôi thường xuyên sử dụng Aperture và khi trao đổi tăng hiệu suất sẽ xấu đi và khi nó vượt quá 1Gb, tôi phải khởi động lại hệ điều hành để làm sạch nó và khôi phục hiệu suất. Lưu ý: máy có 6GB RAM và KHÔNG chiếm hết, khoảng 3 GB là miễn phí, nhưng 1G bị hoán đổi làm giảm đáng kể hiệu năng.


3

Tôi đã vô hiệu hóa trao đổi trên các máy trong nhiều năm, cả trên OS X và các biến thể UNIX khác.

Tôi sử dụng một công cụ để thông báo cho tôi khi bộ nhớ sắp hết và không bao giờ lo lắng về việc hệ thống của tôi bị sập.

IMac của tôi có 12GB và với tính năng trao đổi bị vô hiệu hóa, tôi hầu như luôn có 4GB miễn phí, ngay cả với nhiều công cụ phát triển, ứng dụng, trình duyệt, v.v.


5
Bạn đang sử dụng công cụ bộ nhớ nào?
Dmitriy

1

Mẫu lặp lại ở đây là:

Những người đã vô hiệu hóa tập tin hoán đổi trải nghiệm hiệu suất được cải thiện (với đủ RAM vật lý)

Những người KHÔNG vô hiệu hóa không gian hoán đổi chắc chắn rằng nó sẽ không hoạt động, và điều gì đó khủng khiếp sẽ xảy ra, và đang khuyên rằng bạn không nên làm điều đó.

Điều này đơn giản là do hai điều:

  1. Những ý tưởng lỗi thời về sự khan hiếm và chi phí cao của RAM vật lý không còn hiệu lực
  2. Một cơ chế hoán đổi thực sự kém trong MacOS gây ra việc sử dụng các tệp hoán đổi khi có đủ RAM vật lý.

1
Nếu không gian hoán đổi được sử dụng CHỈ khi cần, thì nó sẽ rất tuyệt. Tuy nhiên, đó không phải là trường hợp. Tôi chạy các máy ảo 2gb và 4gb trên MacOS của mình. Nếu tôi có 1.6gb RAM miễn phí, tôi sẽ có thể chạy máy ảo 1GB (hoặc chương trình khác), nhưng tôi không thể vì HĐH bắt đầu phân trang. Do đó, tôi chỉ có thể sử dụng khoảng 85-90% RAM. Nếu tôi muốn nhận được TẤT CẢ RAM của mình, tôi cần phải tắt phân trang. Tôi làm điều này trên tất cả các máy Windows của tôi và muốn làm như vậy trên MacOS của tôi. Nếu một chương trình hết RAM, thì nó sẽ thất bại. Đó là những gì tôi muốn xảy ra. Tôi không muốn các ứng dụng khác đang chạy

3
YMMV. Tôi không vô hiệu hóa trao đổi nữa vì tôi không tìm thấy nó để giúp thực hiện bất kỳ trên các máy hiện đại, có RAM. Tôi đã từng như vậy trong quá khứ vì nó đã giúp trở lại những ngày xưa tồi tệ. Ngày nay, tôi không chỉ thấy bất kỳ thay đổi hiệu suất nào bằng cách vô hiệu hóa trao đổi, tôi còn thấy sự mất ổn định của ứng dụng tăng lên rất nhiều.
Brian Knoblauch

1
Điều không mong muốn sẽ xảy ra là một con người sẽ quên rằng họ không thể khởi chạy một chương trình khác và đúng lúc, máy sẽ gặp sự cố do lỗi bộ nhớ thấp. Cho dù điều này là khủng khiếp, hài hước, giáo dục phụ thuộc vào thời gian, tần suất sao lưu và khả năng chịu đựng sự chậm trễ của bạn.
bmike

1

Chỉ là một kinh nghiệm cá nhân.

Memory Amount    |
 4 GB            | Don't disable it, Mountain Lion itself boots with about 1 GB.
 8 GB            | Do if you don't run apps that requires more than 1 GB of memory, in short, virtualization software, Photoshop, and stuff.
16 GB or more    | Do it! Even Xcode or Final Cut won't use more than 4 GB of memory, at least as I've seen. Just don't run too many virtual machines though.

Lưu ý nhanh: Nếu máy Mac của bạn sử dụng đồ họa tích hợp, bộ nhớ của nó được chia sẻ với bộ nhớ chính của bạn với kernel_task. Do đó, bạn sẽ phải trừ đi số tiền đó trong tổng số có thể sử dụng của bạn.

Người dùng SSD, thật hài lòng khi có nhiều không gian hơn, nhưng điều quan trọng cần biết là bộ nhớ ảo phát triển mạnh trên SSD, bạn có thể nhận được toàn bộ hiệu suất đạt được từ nó. Nó có làm tổn thương SSD không? Có, nhưng bạn sẽ thay thế máy Mac của mình trước khi bạn nhận thấy.


1
Cá nhân tôi đã vô hiệu hóa bộ nhớ ảo trên MacBook Pro Retina chỉ với 8 GB bộ nhớ. Đây là phép toán, hệ thống sử dụng khoảng 2 GB bộ nhớ tích hợp đồ họa. Vì vậy, đó là 6 GB đối với tôi. Tôi làm Xcode cho công việc, lúc đó tiêu thụ bộ nhớ không quá 2 GB. Vì vậy, tôi có rất nhiều để phụ tùng.
Shane Hsu

1

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!


0

Tôi vừa vô hiệu hóa tệp hoán đổi trên Macbook air 2011 (RAM 4GB, SSD 128 GB) vì tôi chán ngán tệp hoán đổi từ từ ăn hết dung lượng HD còn lại và sau đó phải khởi động lại. Bằng cách này, ý tưởng là tôi sẽ chỉ chạy ít chương trình hơn.

Tôi sẽ xem nếu nó thực sự hoạt động, hoặc nếu tôi sẽ phải khởi động lại để xóa bộ nhớ "Có dây", nhưng bây giờ nó có vẻ hoạt động tốt. Một lần bộ nhớ thực sự đầy, máy tính bị chậm lại nhiều như khi SSD hết bộ nhớ - nhưng nó đã phục hồi nhanh hơn rất nhiều ngay khi tôi thoát khỏi ứng dụng. (Và tôi thực sự đã có thể thoát khỏi các ứng dụng, điều mà tôi thường không phải là khi SSD đầy lên).

Tôi sẽ thấy làm thế nào nó đi ổn định khôn ngoan, nhưng cho đến nay tôi là một người cắm trại hạnh phúc. Nó cũng buộc tôi phải chạy ít ứng dụng hơn (và các tab Chrome) tại một thời điểm, điều này tốt cho việc tập trung vào nhiệm vụ.


0

Lý do chính để vô hiệu hóa hoán đổi không phải là tốc độ - đó là không gian đĩa.

Nếu một người dùng thường xuyên chạy trong phạm vi 5 GB của một ổ đĩa đầy đủ, việc vô hiệu hóa trao đổi sẽ ngăn chặn sự cằn nhằn liên tục của việc hết dung lượng; Tôi thường xuyên kết thúc với một hoán đổi hơn 4 GB từ trình duyệt thông thường.

Sự cải thiện tốc độ là đáng kinh ngạc trên các máy cũ; Nó không ấn tượng trên các máy hiện đại được trang bị SSD. (Trong OSX 10.0 trên iMac, sử dụng bộ nhớ ảo giảm một nửa tốc độ của nhiều thao tác, bao gồm cả sao chép tệp giữa các ổ đĩa).


Nghe có vẻ giống như còi được cố định vì phanh không hoạt động. Nếu ổ đĩa quá đầy, hãy lấy một số dữ liệu ra khỏi nó.
Tetsujin

@Tetsujin Tệp đơn lớn nhất trên ổ đĩa đó là tệp hoán đổi.
aramis

quan điểm của tôi vẫn đứng vững. Ít dữ liệu hơn, ổ đĩa lớn hơn hoặc nhiều RAM hơn và bạn sẽ không phải làm vậy.
Tetsujin
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.