Điều gì xảy ra với dữ liệu trong trao đổi khi máy tính của bạn ngủ đông?


12

Khi một máy tính chuyển sang chế độ ngủ đông, nó sẽ lưu nội dung của RAM vào không gian trao đổi để nó có thể tiếp tục chính xác nơi nó rời đi khi bật lại.

Vì vậy, nếu bạn hiện đang sử dụng nhiều bộ nhớ hơn bạn có RAM. Trong trường hợp này, một số dữ liệu có trong RAM sẽ được lưu lại để trao đổi.

Một ví dụ. Một máy tính có 1GB RAM và 1GB dung lượng trao đổi. Hiện tại nó đang sử dụng tất cả trừ 100 MB RAM và 500 MB trao đổi. Vì vậy, cần phải nhớ khoảng 1,4 GB bộ nhớ để lưu trạng thái của nó. Tuy nhiên, trao đổi chỉ là 1GB.

Điều gì sẽ xảy ra trong trường hợp này?

~ ~ chỉnh sửa ~ ~

Như đã trả lời dưới đây, ngủ đông thất bại. Vì vậy, sau đó một câu hỏi tiếp theo:

Khi thất bại, lỗi được báo cáo ở đâu?

Câu trả lời:


11

Điều đó phụ thuộc vào việc thực hiện ngủ đông. Ngay cả khi bạn giới hạn câu hỏi đối với Linux, việc triển khai đã phát triển theo thời gian.

Đầu tiên, hãy xem xét rằng một số RAM được sử dụng cho bộ đệm đĩa. Điều này không cần phải được chuyển sang trao đổi vì nó có thể được tải lại từ đĩa sau khi hệ thống hoạt động trở lại. Trên một hệ thống có sự cân bằng chi phí / hiệu quả tốt, điển hình cho khoảng một nửa RAM được phân bổ cho bộ nhớ cache. (Xem thêm Tại sao sử dụng trao đổi khi có quá nhiều RAM .) Trong Linux, một số triển khai ban đầu sẽ lưu trữ tất cả bộ nhớ được phân bổ vào trao đổi, nhưng (các?) Thực hiện hiện tại của bộ đệm đĩa ngủ đông.

Thứ hai, một số hệ thống nén bộ nhớ khi nó được ghi vào trao đổi, điều này có thể khiến cho số lượng trao đổi yêu cầu chính xác khó dự đoán. Một số phiên bản hỗ trợ ngủ đông của Linux đã hỗ trợ nén; Tôi không biết nếu những người hiện tại làm.

Những gì bạn thường có thể mong đợi nếu không có đủ dung lượng trao đổi là chế độ ngủ đông sẽ thất bại: hệ thống sẽ cố lưu trữ nội dung (hữu ích) của RAM vào trao đổi và ngay khi phát hiện ra rằng không đủ dung lượng, nỗ lực ngủ đông bị hủy bỏ (thường có thông báo lỗi trên bảng điều khiển và trong nhật ký hệ thống). Theo như tôi biết, Linux luôn hành xử như vậy (không phải là có một hành vi hợp lý khác).


1
Tôi đã thử điều này trong một máy ảo và nó đã thất bại, mặc dù nó không hiển thị bất kỳ thông báo nào cho người dùng (Tôi đã thử với Ubuntu 10,4). Nhật ký hệ thống nào sẽ có lỗi này được báo cáo?
David Oneill

3
@David: Chắc chắn phải có một cái gì đó trong /var/log/kern.log. Tôi không biết liệu sự vắng mặt của một thông báo trên bảng điều khiển là một sự châm biếm của phiên bản kernel cụ thể này hay một cấu hình Ubuntu có chủ ý (tôi biết rằng họ đã cố tình triệt tiêu một số đầu ra giao diện điều khiển khác).
Gilles 'SO- ngừng trở nên xấu xa'
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.