Làm cách nào để đoán chính xác kích thước phân vùng trao đổi khi sử dụng tmpfs?


2

Tôi có một ổ SSD, vì vậy không gian là nguồn tài nguyên khan hiếm. Tôi muốn sử dụng ít nhất có thể để trao đổi. Trên thực tế, tôi đã dành trọn năm ngoái mà không có phân vùng trao đổi (máy tính có RAM 6 GB).

Tôi đang lên kế hoạch cài đặt lại sạch sẽ và muốn thử một số điều mới. Trong số đó, tôi muốn giảm tải ghi trên SSD bằng cách đặt các thư mục hệ thống nặng ghi trên tmpfs. Cụ thể, tôi muốn đặt /tmp, /var/tamp/var/tmp/cachetrong RAM. Rõ ràng, điều này sẽ làm tăng mức sử dụng RAM của tôi và đến một lúc nào đó, tôi có thể cần trao đổi.

Trước đây tôi chưa đăng nhập kích thước thư mục tạm thời và sử dụng RAM và không muốn cài đặt các công cụ ghi nhật ký và chờ cài đặt lại cho đến khi tôi thu thập đủ dữ liệu. Các tùy chọn tốt nhất của tôi để đoán dự đoán về kích thước phân vùng trao đổi phù hợp là gì? Làm thế nào hợp lý sẽ đoán như vậy? Tôi chỉ còn lại chụp trong bóng tối hay dựa vào các hướng dẫn quá mức của loại "1,5x kích thước RAM của bạn"?

Tôi thực hiện tắt máy hoàn toàn mỗi đêm, vì vậy tôi hy vọng các thư mục tạm thời sẽ không có kích thước quá lớn.


Hệ điều hành của tôi (arch linux) nằm trên ổ SSD và tôi có 6 GB RAM. Tôi có một phân vùng trao đổi 2 GB hiếm khi được chạm vào. Chỉ để cung cấp cho bạn một điểm dữ liệu năm 2017.
Emanuel Landeholm

Câu trả lời:


4

Bạn có ba vấn đề khi trao đổi không gian.

Đầu tiên, với không gian hoán đổi không đủ, một số khối lượng công việc không thể thực hiện được. Nếu một chương trình cần nhiều bộ nhớ hơn RAM vật lý khả dụng, nó chỉ không thể chạy mà không cần trao đổi.

Thứ hai, với không gian trao đổi rất thấp, máy tính của bạn có thể không thể đuổi những thứ không bao giờ được truy cập từ RAM vật lý. Thường thì một số đoạn bộ nhớ sẽ không bao giờ được truy cập, nhưng hệ điều hành không thể chứng minh điều đó. Vì vậy, nó không thể chỉ giải phóng bộ nhớ. Không có đủ trao đổi, thông tin đó sẽ bị kẹt trong RAM mãi mãi, không bao giờ được truy cập. Nhiều quá trình làm bẩn một loạt bộ nhớ khi khởi động mà chúng không bao giờ chạm vào.

Cuối cùng, với không gian hoán đổi rất thấp, quyết định của bạn có vượt quá VM hay không có thể gây ra hậu quả nghiêm trọng. Nếu bạn không cho phép hệ thống hoạt động quá mức VM, bạn sẽ từ chối các hoạt động thực sự không sử dụng nhiều bộ nhớ. (Hãy tưởng tượng nếu một quá trình lớn gọi fork. Nó có thể là về để gọi exec, nhưng trừ khi bạn cho phép overcommitting, hệ điều hành phải từ chối forknếu nó không có đủ RAM + swap cho quá trình mới để bẩn mỗi writable trang ánh xạ.) Nếu bạn không cho phép hệ thống hoạt động quá mức và bạn thực sự không có đủ RAM + trao đổi cho khối lượng công việc không điển hình, bạn có thể thấy các quy trình bị chấm dứt một cách bất thường.

Cá nhân, giả sử sử dụng thông thường, tôi sẽ phân bổ 2GB để trao đổi và đảm bảo cho phép vượt mức hợp lý .


2

Nếu bạn không thực hiện bất kỳ tác vụ nặng bộ nhớ nào, thì một máy tính có RAM 6G có thể thực hiện mà không cần trao đổi (cảnh báo: Tôi bị điên).

Gắn kết / tmp (anh chị em của nó / var) như tmpfs là một thực hành rất tốt. Đối với netbook của tôi có RAM 1G, không có trao đổi, giữ các tmpfs 100M / tmp và không bao giờ gặp sự cố (trừ khi bạn muốn lấy những thứ từ đó như lưu trữ những thứ mà mọi người thường không muốn).

Nếu bất cứ điều gì làm hỏng, tất cả những gì bạn phải chỉnh sửa là / etc / fstab.

Paranoia là tốt nhưng cơ hội mất dữ liệu của bạn ít hơn vì chỉ có các thư mục tmp / bộ nhớ cache trong bộ nhớ, dữ liệu thực tế được ghi vào đĩa.

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.