Apa artinya jika saya memiliki banyak memori "Tidak Aktif" di akhir hari kerja?

21

Setelah seharian bekerja di MacBook Pro saya yang menjalankan Mac OS X 10.6.5, Activity Monitor menunjukkan bahwa mayoritas memori 8 GB komputer saya adalah "Tidak Aktif", dan hanya sepotong kecil dari diagram lingkaran adalah "Gratis". Ini bahkan ketika saya telah menutup semua aplikasi, dengan hanya Finder yang berjalan.

Apa artinya? Apakah memori "Tidak Aktif" diambil oleh sesuatu? Atau apakah sebenarnya masih tersedia untuk aplikasi untuk digunakan? Terima kasih.

hpy
sumber

Jawaban:

27

OS X, seperti kebanyakan sistem operasi modern, menggunakan sistem memori virtual untuk mengelola memori. Di antara tujuan lain, ini memungkinkan sistem operasi untuk memperlakukan komputer sebagai memiliki kumpulan memori yang tidak terbatas. Untuk mencapai hal ini, OS akan halaman bagian yang tidak terpakai dari RAM ke disk store yang dikenal sebagai swapfile .

Tentu saja, RAM tidak terbatas, jadi OS X mengelompokkan RAM menjadi empat kategori: kabel, aktif, tidak aktif, dan gratis. Memori berkabel diperlukan oleh sistem operasi, dan tidak akan pernah bisa kehabisan memori. Memori aktif adalah memori yang digunakan oleh program yang sedang berjalan. Memori tidak aktif digunakan baru-baru ini oleh program yang sekarang telah dihentikan (atau tidak digunakan dalam waktu yang lama). Bebas memori, seperti namanya, RAM yang tidak sedang digunakan.

Saat Anda meluncurkan program, program akan dimuat ke dalam memori aktif. Namun, ketika Anda keluar dari sebuah program, program itu tidak dihapus dari RAM; melainkan, ia terbentur ke dalam memori tidak aktif. Inilah sebabnya mengapa seringkali lebih cepat untuk meluncurkan kembali suatu program - program ini masih dalam RAM (coba ini dengan program besar seperti Firefox).

Setelah semua memori Anda digunakan (memori bebas adalah 0), OS akan menuliskan memori tidak aktif ke swapfile untuk membuat lebih banyak ruang dalam memori aktif.

Jika suatu program dipindahkan ke swapfile, dan Anda meluncurkannya kembali, itu akan ditarik dari swapfile ke memori aktif.

Jadi singkatnya, Anda seharusnya tidak peduli jika memori bebas Anda rendah. Faktanya, Anda ingin memori rendah - bebas adalah memori yang terbuang (karena OS tidak menggunakannya untuk apa pun).

Ketika memeriksa berapa banyak memori yang digunakan komputer Anda, Anda sebenarnya ingin memperhatikan sebagian besar Swap yang digunakan , yang memberitahu Anda ukuran swapfile memori virtual, dan Page ins , yang memberitahu Anda seberapa sering OS harus menarik memori dari swapfile ke dalam memori aktif.

mipadi
sumber
2
Saya menemukan Page out sebagai indikator penggunaan swap yang lebih baik daripada Page in, karena Page in termasuk memuat program dan juga memuat dari swapfile.
Gordon Davisson
1
Di Monitor Aktivitas, Ukuran VM saya lebih dari 160 GB! Apakah ada semacam swapfile di komputer saya yang sebenarnya sebesar itu ?!
Hpy
1
@penyuan: Tidak. Secara teoritis seberapa besar swapfile dapat berjalan, tetapi ukuran sebenarnya dari swapfile tersebut diberi label Swap yang digunakan dalam Activity Monitor.
mipadi
1
Memori tidak aktif sebagian seperti yang Anda katakan, meskipun secara khusus merupakan cache dari sistem file atau pustaka yang mungkin diakses kembali oleh suatu aplikasi, tetapi juga blok memori dari aplikasi yang sedang berjalan yang telah dialokasikan tetapi tidak diakses dalam beberapa periode waktu (tidak yakin dari jangka waktu yang tepat). Kernel menandai mereka sebagai Tidak Aktif sehingga memprioritaskan mereka untuk membuka ke disk jika jumlah memori bebas turun terlalu rendah.
drfrogsplat
2
@menerima: Memori tidak aktif akan keluar. Memori aktif akan dipindahkan ke tidak aktif saat tidak lagi diperlukan. Saya kira jika Anda memiliki memori yang sangat sedikit sehingga tidak ada ruang untuk memori tidak aktif, memori aktif akan diarahkan ke disk, tetapi itu adalah keadaan khusus. Memang, swapfile secara teoritis tumbuh tanpa batas waktu (sampai tidak ada lagi ruang disk), tetapi itu juga, merupakan kejadian yang sangat langka.
mipadi
9

Ini kemungkinan besar bukan masalah, dan sebenarnya berpotensi mempercepat komputer Anda.

Semua sistem operasi (kebanyakan?) Menggunakan Disk Cache, yang menyimpan beberapa file yang baru-baru ini diakses dalam memori sehingga akses berulang file-file tersebut dapat dipercepat. Cache disk pada OS X berukuran bervariasi, dan akan muncul sebagai "Memori Tidak Aktif" yang digunakan.

Jika ada program yang membutuhkan lebih banyak memori, OS X akan menghapus beberapa cache disk (file yang paling baru digunakan) untuk memberikan ruang bagi program untuk menjalankan / memperluas.

Saya menemukan bahwa jika saya melakukan banyak kompilasi atau penyortiran foto (yaitu mengakses ribuan file secara berurutan) cache disk akan berkembang dan menggunakan banyak Memori Tidak Aktif. Asalkan ini hanya cache disk, tidak ada yang perlu dikhawatirkan.

Jika itu adalah proses latar belakang atau aplikasi yang sedang berkembang dalam penggunaan memorinya (tetapi halaman-halamannya ditandai tidak aktif) maka Anda akan dapat mengetahui dengan memeriksa semua program dengan penggunaan "Memori Nyata" yang sangat tinggi di Activity Monitor. Jika tidak ada yang besar di sana (yaitu totalnya jauh dari 8GB) maka itu akan menjadi file cache.

Anda harus melihat bahwa ada sedikit jika ada penggunaan Swap, dan jika Anda membuka program intensif-memori, jumlah memori tidak aktif akan berkurang tanpa harus menukar ke disk.

(Saya percaya ada bug di 10,4 atau 10,5 untuk sementara waktu di mana itu tidak selalu membebaskan memori ini dengan sangat efektif, dan akan menyebabkan swapping meskipun memiliki cache disk yang besar, tetapi menurut pengalaman saya ini nampaknya diselesaikan pada 10.6).

drfrogsplat
sumber
Memori yang tidak aktif sebenarnya adalah RAM, bukan memori yang telah dipetakan ke disk.
mipadi
3

Memori "tidak aktif" tersedia untuk digunakan oleh program lain - hanya caching program atau data yang baru saja Anda gunakan, jika Anda membutuhkannya lagi. Jika Anda meluncurkan program yang berbeda atau membutuhkan data yang berbeda, memori yang di-cache akan dihapus dan tersedia untuk beban kerja baru Anda sesuai kebutuhan.

Bagaimanapun teorinya, dan saya percaya itu masuk akal. Namun, saya memang menemukan referensi ini ke "pembersihan" utilitas seseorang menulis karena mereka tidak berpikir memori tidak aktif dirilis cukup cepat.

Untuk dokumentasi resmi tentang masalah ini, baca ini (dan cari "tidak aktif").

Michael H.
sumber
Sebagai catatan, MBP saya saat ini mengatakan: gratis 58 MB, kabel 239 MB, aktif 1,84 GB, tidak aktif 900 MB - dan sistem berkinerja cukup baik.
Michael H.
1
Saya menemukan perintah pembersihan alat mengirim dewa. Memiliki Photoshop + Firefox + Illustrator + Netbean + SmartGit dapat dengan mudah membuat merangkak iMac 4Gb mati. Tentu saja, Firefox adalah penyebab utama, tetapi jika Anda ingin sedikit mempercepat, keluarlah dari Firefox dan terbitkan "bersihkan &" Bagus seperti baru lagi
Antony
2
Halaman manual Purge sebenarnya mengatakan itu ditulis untuk membersihkan cache disk saja (bukan mem anonim: stack, heap, atau copy on write) untuk analisis kinerja (tepatnya karena cache disk mempercepat sistem). Itu tidak ditulis untuk rilis lebih cepat, karena mengeksekusinya lebih lambat dari kernel yang secara dinamis mendapatkan kembali memori ketika dibutuhkan. Menutup aplikasi sepenuhnya menghapus semua memo yang dialokasikan, dan jika Anda membersihkannya setelah itu membuatnya memuat aplikasi lebih lambat, lihat linuxatemyram.com/play.html . Saya kira ada sesuatu yang psikologis tentang pembersihan, sama seperti komposif mengosongkan sampah.
Jano
1

Dimulai dengan OS X 10.5 ada masalah manajemen memori yang jelas di MAC OS X.

Saya akhirnya berhasil mereproduksi skenario bermasalah, jadi saya menjalankan tes dan merekam layar, menjadi video.

Masalah kinerja MAC OS X Lion - manajemen memori rusak

Saya menjalankan perintah tar + bzip, yang merupakan hal dasar unix, pada sejumlah besar file gambar, di Pictures / folder saya. Tepat sebelum memulai, saya menjalankan perintah "pembersihan", untuk menghapus data program yang tidak aktif / di-cache.

Anda dapat melihat pada video bahwa memori bebas mulai turun sangat cepat, dan tidak aktif terus meningkat. Jika Anda melihat perintah "bsdtar", itu hanya membutuhkan sebagian dari RAM, jadi masalahnya bukan pada proses ini. Anda tidak dapat mengatakan bahwa itu adalah kebocoran memori program, karena dengan demikian masalahnya tidak akan menjadi ram tidak aktif, melainkan dalam aktif / kabel.

Ketika memori bebas turun di bawah 100mb, saya memulai beberapa aplikasi, seperti Safari, iPhoto, dan MS Word, dan Anda dapat melihat dalam video, bahwa dibutuhkan waktu beberapa menit untuk memulai aplikasi, ketika biasanya (ketika ada RAM gratis), itu akan memakan waktu 3-5 detik untuk memuat.

Saya menjalankan skenario yang sama dan perintah yang sama pada kotak Linux Centos 6 saya, tidak ada masalah di sana! Penggunaan memori sekitar 10-20mb, tidak ada masalah dengan cache / buffer.

Manajemen memori harus sangat rusak di Mac OS X!

egremyl
sumber
1
Beberapa dari apa yang Anda gambarkan mungkin membentuk dasar dari pertanyaan yang berbeda, tetapi itu bukan jawaban untuk pertanyaan ini.
Graham Perrin
2
Saya akan mengatakan bahwa deskripsi Anda tentang memori bebas dengan cepat berkurang ke set point dan sistem mengakumulasikan semua sisa RAM nonaktif dan kabel sebagai tidak aktif adalah indikasi bahwa sistem bekerja persis seperti yang dirancang. Hanya karena manajemen memori berbeda pada satu OS dengan yang lain tidak berarti itu rusak pada keduanya. Pilihan pengoptimalan selalu memiliki sisi buruk.
bmike
0

Diskusi ini masuk akal hanya jika pernyataan bahwa "komputer Anda akan berjalan lebih cepat ketika memori bebas rendah" - benar. Kecuali jika Desktop Mac saya berkabel aneh, begitu memori bebas saya (dimonitor) mulai menipis, program apa pun yang saya jalankan pada saat itu mulai macet sampai ke titik di mana saya tidak dapat melakukan apa-apa sampai ia kembali dengan sendirinya atau oleh intervensi Memori Bebas saya. Saya memiliki iMac 2118 (2006 atau lebih baru) yang maksimal pada 3 GB RAM jadi saya mencoba untuk mengaturnya ketika saya bisa tetapi ini sangat membuat frustrasi. Adakah pikiran?

webbglider
sumber