Theo như tôi biết, bạn không thể kiểm soát phần nào của hệ thống bộ nhớ ảo (tức là RAM hoặc trao đổi) được sử dụng cho một tmpfs.
Tuy nhiên, không đúng khi tạo một tmpfs lớn sẽ gây ra lỗi nghiêm trọng OOM. Bạn có thể tạo một tmpfs lớn hơn tổng RAM + SWAP của bạn vì không ai trong số đó thực sự được sử dụng cho đến khi bạn đặt các tệp vào tmpfs.
Khi bạn làm đặt các tệp trong tmpfs, sẽ sử dụng bộ nhớ, nhưng chỉ nhiều như các tệp bạn đặt vào tmpfs. Nếu sau đó bạn không chạm vào các tệp đó trong một thời gian dài và hệ thống cần sử dụng RAM nhiều hơn mức cần thiết để giữ chúng trong bộ đệm bộ đệm, thì các tệp đó sẽ thực sự được sao lưu từ trao đổi thay vì RAM.
Khi nhu cầu của bạn đối với các tmpfs trở thành một phần lớn của RAM, điều đó sẽ ảnh hưởng đến bộ đệm của bạn (mọi thứ sẽ ngừng được lưu trong bộ nhớ cache vì nó cần cho các tệp tmpfs). Khi nhu cầu tăng lên, thì nó sẽ bắt đầu hoán đổi. Cuối cùng, khi bạn không có bộ đệm bộ đệm, tất cả các trao đổi của bạn được sử dụng và vẫn còn nhiều yêu cầu cho bộ nhớ được thực hiện, sau đó và chỉ sau đó bạn sẽ bắt đầu gặp lỗi OOM.
Vì vậy, trên thực tế an toàn để chỉ định một tmpfs lớn cho /tmp
miễn là bạn có một lượng trao đổi kha khá. Bạn nói rằng bạn sẽ ổn với nó khi sử dụng 25% RAM và 75% trao đổi của bạn. Trong trường hợp đó, giả sử bạn thường có 1G RAM và 2G trao đổi. Tôi đã đặt tmpfs thành 1G và tăng cường trao đổi một chút, nói với 3G.
Nếu hệ thống của bạn chịu áp lực bộ nhớ, điều đầu tiên sẽ xảy ra là các tệp được sử dụng không thường xuyên trong /tmp
cuối cùng sẽ được hỗ trợ bởi trao đổi thay vì RAM. Bạn sẽ không mất tất cả RAM bằng cách tạo một tmpfs có cùng kích thước với RAM.
/tmp
, nhưng một số ứng dụng kỳ lạ, như UNetBootin khăng khăng tải hình ảnh ISO xuống / tmp ... tôi không ngại việc tải xuống các tệp đó để trao đổi trên các quãng đường hiếm hoi tôi sử dụng ... nhưng tôi sẽ không để các tmpfs của mình có thể ăn tất cả ram của tôi tất cả các thời gian. và đó là những gìsize=4g
sẽ làm