Hãy nói rằng chúng ta có một máy OS X chạy với 4 GB RAM. Có thể thiết lập nó để không có quá trình đơn lẻ nào có thể chiếm hơn 3 GB, do đó, cho dù bộ nhớ có xử lý quá trình như thế nào, vẫn luôn có một số bộ nhớ còn lại để giữ cho hệ thống phản hồi?
Hãy nói rằng chúng ta có một máy OS X chạy với 4 GB RAM. Có thể thiết lập nó để không có quá trình đơn lẻ nào có thể chiếm hơn 3 GB, do đó, cho dù bộ nhớ có xử lý quá trình như thế nào, vẫn luôn có một số bộ nhớ còn lại để giữ cho hệ thống phản hồi?
Câu trả lời:
Một câu hỏi tương tự như vậy được ghi chú ở đây Làm thế nào tôi có thể giới hạn dung lượng RAM mà ứng dụng Mac OS có thể sử dụng?
Họ khuyên bạn nên sử dụng lệnh ulimit , nhưng họ không thể giới hạn thành công số lượng họ muốn. Tôi nghĩ vấn đề mà họ gặp phải là thực tế là tùy chọn được đặt -u hoặc -v không chiếm hệ thống phân trang bộ nhớ, ví dụ: bạn chỉ có thể phân bổ dung lượng X cho bạn xử lý trong RAM thực, nhưng chúng tôi có thể trang bạn ra bộ nhớ ảo cả ngày.
Lưu ý rằng điều này có thể nguy hiểm vô hiệu hóa Bộ nhớ ảo, nó có thể dẫn đến việc máy Mac của bạn bị khóa, v.v. khi nó hết RAM.
Hãy thử chạy ulimit với các đối số -l, -m hoặc -v tuy nhiên như đã lưu ý trong trang người dùng ulimit, nó sẽ chạy đến HĐH nếu nó sẽ chú ý đến các cài đặt này hoặc không như đã lưu ý.
ulimit: ulimit [-SHacdefilmnpqrstuvx] [giới hạn]
Sửa đổi giới hạn tài nguyên vỏ.
Cung cấp quyền kiểm soát đối với các tài nguyên có sẵn cho trình bao và các quy trình mà nó tạo ra, trên các hệ thống cho phép kiểm soát như vậy.
Thực sự không thể tìm thấy bất kỳ nguồn xác định nào xác nhận nếu OS X bỏ qua ulimit hay không, nhưng sau khi ulimit được tham chiếu không thành công
Nếu bạn có thể tự mình sử dụng ulimit để đáp ứng nhu cầu của mình thì hãy thử, nếu không kết hợp ulimit và vô hiệu hóa bộ nhớ ảo có thể cho phép bạn thiết lập giới hạn 3 GB cho các quy trình được chọn. FYI ở đây là một liên kết tốt để biết thêm thông tin về Hoàn toàn vô hiệu hóa bộ nhớ ảo trong hệ thống Snow Leopard 10.6
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
Nếu bạn đang chạy Máy chủ Lion (hoặc OSX mới hơn) trên máy Mac của mình, bạn có thể chạy OSX bên trong máy ảo (VirtualBox, Parallels hoặc VMWare, et.al.) trên máy Mac đó. Giới hạn VM ở mức 3GB RAM vật lý và mọi ứng dụng hoặc quy trình bên trong VM cũng sẽ bị hạn chế. Hệ thống lưu trữ VM phải đáp ứng ngay cả khi HĐH trong VM bị sao lưu-trao đổi-đĩa bị giới hạn hoặc gặp sự cố.
Nếu bạn đang gỡ lỗi một quy trình có khả năng chạy trốn, bạn có thể ssh vào VM để chạy trình gỡ lỗi hoặc gỡ lỗi từ dòng lệnh và đăng nhập nội dung cho đến khi mọi thứ bị khóa.