Các bộ nhớ khác nhau trong FreeBSD có nghĩa là gì?


20

đầu nói với tôi:

last pid: 64807;  load averages:  0.99,  0.97,  0.92                                          up 189+04:47:22 09:16:17
45 processes:  1 running, 44 sleeping
CPU:  0.4% user,  0.0% nice,  0.2% system,  6.4% interrupt, 93.0% idle
Mem: 222M Active, 2151M Inact, 2008M Wired, 823M Buf, 3499M Free
Swap: 8192M Total, 8192M Free

Munin cho thấy điều này rõ ràng hơn một chút:

sử dụng bộ nhớ hàng năm rtr1

Như bạn có thể thấy, máy chủ có khoảng 8GB ram. Tôi tự hỏi liệu tôi có thể nhồi nhét con thú này vào một máy chủ 2GB khiêm tốn hơn không . Bây giờ tôi biết những gì hoạt động và bộ đệm có nghĩa là, tôi nghĩ. Nhưng tôi thực sự lo ngại về các đốm bộ nhớ "có dây" và "không hoạt động". Những người không ánh xạ đến bất kỳ quá trình hiện có như tôi biết.

Lưu ý cách dòng "hoạt động" màu xanh lá cây tăng lên trong tháng 12: đó là khi chúng tôi bắt đầu sử dụng trình nền BGP trên bộ định tuyến này. Tôi không hiểu chính xác những gì đã xảy ra vào tháng Tư và tháng Năm, nhưng tôi nhớ đã thực hiện nâng cấp hệ thống và chuyển sang pkgng vào khoảng thời gian đó.

Đây là bộ định tuyến dự phòng cho cái đầu tiên, với ít ram hơn (4GB):

sử dụng bộ nhớ hàng năm rtr0

Có vẻ như thiết bị này sống hoàn hảo với một nửa RAM và vẫn còn khoảng 2 GB miễn phí, điều này khiến tôi tin rằng tôi có thể chuyển sang hộp 2 GB cho máy chủ này, giảm chi phí và bảo trì ...

Bất kỳ đề xuất? Các bộ nhớ khác nhau được hiển thị trong đầu có nghĩa là gì? Cụ thể hơn, những gì không:

  • Hoạt động
  • Không hoạt động
  • Bộ nhớ cache
  • Bộ đệm
  • Có dây
  • Miễn phí

...thực sự có nghĩa? Tôi đã tìm thấy một số bài viết giải thích các bit của hệ thống con VM hoạt động và tôi nhớ có một "ah-ah!" Khoảnh khắc hiểu tất cả những điều này khoảng 12 năm trước, nhưng tôi đã quên. :) Ngay cả cẩm nang FreeBSD trung thành cũng không trả lời được câu hỏi của tôi ...

Tôi có thể hạ xuống 2GB không?


Đây là phiên bản Linux của câu hỏi này (giải thích freelệnh từ Procps ): linux - sử dụng bộ nhớ thực
Adam Katz

Câu trả lời:


25
  • Active: Bộ nhớ hiện đang được sử dụng bởi một quá trình
  • Inactive: Bộ nhớ đã được giải phóng nhưng vẫn được lưu trong bộ nhớ cache vì nó có thể được sử dụng lại. Nếu cần thêm Freebộ nhớ, bộ nhớ này có thể bị xóa và trở nên miễn phí. Bộ nhớ này không bị xóa trước khi cần, vì "bộ nhớ trống bị lãng phí bộ nhớ", sẽ không mất bất cứ chi phí nào để giữ dữ liệu cũ xung quanh trong trường hợp cần thiết lại.
  • Wired: Bộ nhớ được sử dụng bởi Kernel. Bộ nhớ này không thể hoán đổi
  • Cache: Bộ nhớ đang được sử dụng để lưu trữ dữ liệu, có thể được giải phóng ngay lập tức nếu cần
  • Buffers: Bộ nhớ cache trên đĩa
  • Free: Bộ nhớ hoàn toàn miễn phí và sẵn sàng để sử dụng. Inactive, CacheBufferscó thể trở thành miễn phí nếu họ đang dọn dẹp.

Vì vậy, bạn chỉ có thể thêm Inactivevào Freesố lượng của bạn và xem xét nó không được sử dụng. Wiredlà bộ nhớ được sử dụng bởi kernel, bao gồm ngăn xếp mạng. chạy netstat -msẽ cung cấp cho bạn một bản tóm tắt về việc sử dụng bộ nhớ theo ngăn xếp mạng.

Dựa trên biểu đồ của bạn, ngoài bước nhảy liên quan đến wiredbộ nhớ vào đầu tháng 3, vâng, bạn sẽ có thể chạy khối lượng công việc đó trên 2GB ram. Nếu bạn làm như vậy, hãy xem xét việc chạy i386 thay vì amd64, vì mỗi cấp phát bộ nhớ sẽ chiếm ít dung lượng hơn, vì các con trỏ sẽ là 32 bit thay vì 64 bit.


1
Memory Bộ nhớ không hoạt động "Không thể phân bổ lại cho các quy trình khác", do đó, bộ nhớ này không được coi là "không sử dụng". Xem wiki.freebsd.org/Memory
humbads 22/03/2017

1
Bộ đếm 'Không hoạt động' đã được chia thành 2 mục riêng biệt trong FreeBSD mới hơn. 'Không hoạt động' và 'Giặt ủi' (bộ nhớ vẫn cần được xóa để trao đổi hoặc đĩa trước khi có thể giải phóng). Giải thích thêm tại đây : lists.freebsd.org/pipermail/freebsd-arch/2016-November/iêu
Allan Jude
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.