Hết hạn mức cam kết trong khi bạn vẫn còn rất nhiều RAM có sẵn không phải là bất thường. Cả giới hạn cam kết cũng như phí cam kết đều không liên quan trực tiếp đến RAM miễn phí hoặc có sẵn.
Giới hạn cam kết = kích thước tệp trang hiện tại + kích thước RAM.
Vì bạn không có tệp trang, nên giới hạn cam kết sẽ nhỏ hơn nếu bạn có tệp trang. Nó không quan trọng bao nhiêu RAM là miễn phí . Đối với giới hạn cam kết, chỉ có dung lượng RAM được cài đặt . Bạn có thể hết giới hạn cam kết ngay cả với 90% RAM miễn phí hoặc có sẵn.
Cam kết phí là một bộ nhớ ảo, không phải vật lý. Giả sử chương trình của tôi yêu cầu 2 GB đã cam kết, nhưng sau đó nó chỉ truy cập 0,5 GB của nó. 1,5 GB còn lại không bao giờ bị lỗi, không bao giờ được gán cho RAM, vì vậy việc sử dụng RAM không phản ánh 2 GB, chỉ 0,5 GB.
Tuy nhiên, "cam kết hệ thống" tăng thêm 2 GB vì hệ thống đã "cam kết" rằng SILL có một nơi để giữ 2 GB của tôi, nếu tôi thực sự cần tất cả. Thực tế là trên bất kỳ chương trình nào, tôi sẽ không nhất thiết phải cố gắng sử dụng tất cả. Tôi đã yêu cầu 2 GB và tiền lãi thành công từ cuộc gọi đó cho tôi biết rằng HĐH "đã cam kết" - tức là đã hứa - rằng tôi có thể sử dụng nhiều không gian địa chỉ ảo đó. HĐH không thể thực hiện lời hứa đó trừ khi có một số nơi để giữ tất cả.
Vì vậy: đặt lại trang của bạn trở lại, thêm RAM hoặc chạy ít thứ hơn cùng một lúc. Hoặc một số kết hợp của ba. Đây là những lựa chọn duy nhất của bạn để tránh các lỗi "thiếu bộ nhớ" và "hết bộ nhớ".
Xem thêm câu trả lời của tôi ở đây (lâu hơn) và ở đây (lâu hơn nhiều).