Bukankah memori yang tidak aktif merupakan pemborosan sumber daya?

87

Saya mencari penjelasan tentang penggunaan memori pada komputer saya terutama mengingat contoh dalam screenshot di bawah ini:

Penggunaan Memori

Saya mengerti apa Freedan Activeartinya.
Tapi apa arti dari Wireddan Inactive?

Terutama inactive, mengapa itu menggunakan begitu banyak memori untuk sesuatu yang tidak kita gunakan?

GusDeCooL
sumber

Jawaban:

142

Memori yang tidak aktif mendapat rap mengerikan karena nama yang jelek. Seharusnya disebut sesuatu seperti "buat Mac Anda benar-benar cepat, kedua, ketiga, dan keempat kali melakukan tugas yang sama" memori kecuali itu nama yang mengerikan juga.

Apple menulis ulang monitor aktivitas ketika memperkenalkan beberapa fitur baru dan menambahkan memori terkompresi, sehingga beberapa dari ini tidak lagi berlaku untuk macOS yang tidak menunjukkan "Memori Tidak Aktif" tetapi ini masih berlaku untuk manajemen memori Mac OS X seperti yang didokumentasikan terhadap ini versi Monitor Aktivitas: https://support.apple.com/en-us/HT201538

Inilah cara saya menjelaskan banyak hal kepada seseorang yang baru mengenal konsep memori virtual pada OS X:

  • Berkabel : Sistem tidak dapat berjalan tanpa jumlah RAM ini (tidak pernah ditukar)
  • Aktif: Program benar-benar menggunakan memori ini sekarang atau dalam beberapa detik terakhir
  • Tidak aktif: Hal-hal yang dibaca oleh program dari disk lambat atau di tempat lain dan mengatakan mereka tidak perlu lagi. Insinyur lebih tahu, Anda akan kembali ke Facebook dalam beberapa menit atau meluncurkan kembali Word setelah berhenti. Hal yang sama terjadi berulang-ulang di komputer.
  • Gratis: Totally Wasted RAM - sistem hanya perlu satu atau dua MB gratis untuk memenuhi permintaan alokasi jangka pendek. Untuk alokasi terbesar, itu hanya menggunakan beberapa RAM tidak aktif dengan mengalokasikannya untuk aktif / kabel dan menghapus informasi tentang apa yang digunakan untuk menyimpan.

Masalah muncul ketika Free + Inactive kurang dari sekitar 1/3 dari total dan kemudian hal-hal dapat benar-benar lambat.

Memori tidak aktif adalah bonus speed / double duty RAM. Ini berfungsi sebagai bebas pada pemberitahuan sesaat, tetapi juga membuat tugas yang diulang jauh lebih cepat jika sistem menebak dengan benar dan menyimpan sesuatu dalam RAM yang akan Anda lakukan lagi. Ini lebih cepat daripada memori yang ditukar karena sudah dimuat dalam RAM dan mempercepat hal-hal ketika sistem memori virtual membuat tebakan yang baik.

Ketika Anda bertanya-tanya apakah RAM adalah masalah, daripada melihat masing-masing dari 4 kategori (5 jika Anda menghitung swap aktif), Anda dapat memasangkan W + A sebagai memperlambat program / tugas baru dan F + I saat mempercepat program / tugas baru. Semakin banyak F + I yang Anda miliki, semakin banyak program baru yang dapat Anda luncurkan sebelum RAM harus bergantung pada swapping untuk menyulap memori yang telah dialokasikan.

Anda tidak benar-benar perlu tahu cara kerja swap sejak saya sebutkan di atas. Pada dasarnya, ketika sebuah program duduk diam dan tidak digunakan selama berhari-hari (atau berjam-jam) sistem akan menulis RAM itu ke hard drive daripada mematikan program. Ini memungkinkan sistem mengocok dan menangani segala macam hal yang berkaitan dengan manajemen memori dan membuat masing-masing program tidak perlu berbicara di antara mereka sendiri untuk menyetujui siapa yang akan menggunakan lebih sedikit memori ketika sistem habis.

Berikut adalah contoh dunia nyata tentang bagaimana RAM tidak aktif digunakan.

  1. Tutup semua aplikasi dan pastikan kedua Aplikasi yang kami uji tidak disetel untuk mulai secara otomatis saat Anda masuk
  2. Nyalakan ulang Mac Anda
  3. Jalankan Monitor Aktivitas Anda dan perhatikan RAM secara keseluruhan
  4. Berapa lama waktu yang dibutuhkan untuk memulai Aplikasi A (MS Word akan menjadi pilihan yang baik)
  5. Berhenti A
  6. Berapa lama waktu yang diperlukan untuk memulai Aplikasi B (Adobe sesuatu juga akan bagus)
  7. Berhenti B
  8. Waktu yang dibutuhkan untuk peluncuran A yang kedua
  9. Berhenti A
  10. Peluncuran kedua Time B.
  11. Waktu A memulai yang ketiga kalinya dengan B berjalan.

Anda akan melihat speedup dramatis untuk peluncuran kedua / ketiga karena sistem belajar untuk menjaga RAM tidak aktif hal-hal yang perlu dijalankan kedua aplikasi ini.


Dalam kasus Anda - total Wired dan Active berarti bahwa beberapa pertukaran ke disk kemungkinan terjadi dan Mac Anda tidak secepat mungkin karena RAM tidak aktif Anda tidak cukup besar untuk menyimpan semua hal yang mungkin perlu Anda gunakan kembali . Jika Anda memiliki drive SSD yang cepat, alokasi RAM ini OK dan alih-alih mulai melambat setelah kurang dari 1/2 RAM Anda adalah F + I, Anda dapat memotong segalanya lebih dekat seperti 1/4 dari total RAM untuk F + Saya sebelum melihat kelambatan yang terlihat. Panduan ini bersifat umum, dan Anda ingin menonton vm_stat 15atau beberapa interval serupa untuk memastikan pertukaran volume terus-menerus dan sedang tidak membuat Mac Anda lambat.

bmike
sumber
9
Wow jawaban yang sangat lengkap untuk pendatang baru seperti saya. Terima kasih banyak, sangat dihargai :)
GusDeCooL
6
Yup - Saya bisa menjawab untuk semua orang - sekali dan untuk semua, orang dapat mengeditnya untuk membuatnya lebih baik dan Anda mendapatkan jawaban Anda. Gagasan keren untuk situs web tempat orang dapat datang dan mengajukan pertanyaan menarik. :-)
bmike
3
Wow! Jawaban yang indah!
duci9y
3
Saya berharap mereka menjelaskannya seperti ini di kelas OS saya.
styfle
2
Pembersihan @cvsguimaraes tidak instan; chat.stackexchange.com/transcript/message/12107920#12107920
Graham Perrin
6

Angka yang paling penting dalam menentukan apakah Mac Anda mendapatkan memori 'stres' adalah angka 'Page out'. Di Monitor Aktivitas di Maverick ini tidak lagi ditampilkan, mereka sekarang menampilkan informasi di 'Tukar Digunakan:'.

Page out berarti OS telah menentukan tidak ada cukup RAM untuk menjalankan semua aplikasi & proses yang telah diminta. Apa yang kemudian dilakukannya adalah 'halaman' ke bagian disk memori yang ditentukan tidak sedang digunakan secara aktif. Ini berarti memori RAM (cepat) diubah menjadi memori HDD (lambat). Jika ini sering terjadi karena ada banyak aplikasi yang berjalan, dan pengguna berpindah antar aplikasi, maka akan ada banyak halaman yang keluar, dan halaman dalam.

Jika Anda melihat peningkatan jumlah halaman maka Anda harus mengambil tindakan.

FromOZ
sumber
4

Masalah pada Mac saya adalah memori "tidak aktif" sepertinya tidak pernah dibersihkan kecuali saya melakukan pembersihan manual di jendela perintah. Itu membangun dan membangun sampai saya mendapatkan jendela sembulan yang memberitahu saya untuk mematikan aplikasi. Bahkan setelah mematikan semua aplikasi saya, saya masih memiliki terlalu banyak memori tidak aktif untuk menjalankan apa pun. Jadi, di Mac saya yang menjalankan versi terbaru Mountain Lion, BUKAN benar bahwa memori tidak aktif akan direklamasi ketika memori bebasnya menjadi rendah. Entah saya memiliki aplikasi di suatu tempat yang telah mengunci sebagian memori tidak aktif yang tidak pernah dibebaskan, atau iOS memiliki bug di dalamnya. (Saya memiliki memori fisik 8GB ... itu seharusnya cukup!)

Ernie
sumber
2
Aku bersamamu, Ernie ... di Mac OS 10.6 dan 10.7 pada MacBook Pro dan Mac Pro, memori tidak aktif akan merayap naik, dan OS akan mulai bertukar (menurut "Halaman Ins" dan "Halaman Keluar") dan sistem akan merangkak berhenti. Memori yang tidak aktif tampaknya tidak pernah mendapatkan reklamasi. Saya harus menggunakan "pembersihan" untuk mendapatkan kembali memori tidak aktif, dan mengaktifkan sistem saya lagi.
Eric
2
Dari mana asal jendela sembulan ini? Bagaimana situasi memori seperti yang dilaporkan vm_statketika itu terjadi? Apa yang membuat Anda begitu yakin bahwa ada "terlalu banyak" memori tidak aktif "untuk menjalankan apa pun"? Sejauh yang saya ketahui, ini semua kabar angin yang tidak memiliki dukungan dalam kode yang Anda tahu, sebenarnya berjalan di kernel.
Kuba Ober
2
Apakah alokasi memori Anda mirip dengan yang disajikan Gus? Di sini kita berbicara tentang kabel gigabyte dan setengah gigabyte aktif. Jatah tidak aktif / gratis terlihat baik bagi saya dalam situasi ini. Mungkin Anda akan mengajukan pertanyaan kedua yang merinci situasi yang Anda hadapi di mana segala sesuatunya hancur?
bmike
2

Terima kasih untuk semua poster dan komentator, ini adalah utas yang bermanfaat dan bermanfaat bagi saya. Pengalaman saya baru-baru ini mungkin bermanfaat bagi seseorang. Saya menggunakan Mac Mini dengan OS X10.8.1 dan dengan 16G RAM seluruhnya untuk perangkat lunak prototyping yang akan dijalankan di tempat lain. Saya dapat meyakinkan Anda bahwa saya tidak akan "kembali ke Facebook dalam beberapa menit atau meluncurkan kembali Word setelah berhenti" - Saya melakukannya di macbook saya sebagai gantinya.

Tugas saya adalah untuk memecah sejumlah besar data, i / o memakan waktu, jadi gagasannya adalah membaca sebanyak mungkin sepotong data untuk ram sebanyak mungkin sekaligus, memprosesnya di sana, dan kemudian menulis kembali ke disk , lalu ulangi prosesnya sampai selesai, yang memakan waktu beberapa jam. Apa yang saya lihat adalah bahwa setiap kali saya membaca sepotong data baru, memori yang tidak aktif melonjak - saya kira sistem AI berasumsi bahwa saya mungkin ingin menggunakan potongan yang lama lagi, yang tidak saya lakukan - dan gratis memori menurun.

Setelah beberapa iterasi dari proses ini, memori bebas menjadi hanya beberapa MB, memori tidak aktif akan membebaskan beberapa MB lagi, dan kemudian setelah beberapa menit bolak-balik antara memori bebas dan tidak aktif, memori tidak aktif akan membebaskan beberapa GB sekaligus. Semua seperti yang dijelaskan oleh @bmike, dan baik vm_stat 15 maupun Monitor aktivitas menunjukkan 0 halaman habis.

Kecuali mungkin tidak cukup. Beberapa kali hal-hal berjalan dengan lancar, saya pergi untuk minum kopi atau makan malam dan tidak memantau prosesnya, dan apa yang seharusnya tidak terjadi terjadi dan proses itu tiba-tiba melontarkan muatan halaman yang keluar dan melambat. Menetapkan bahwa itu mungkin kode jelek saya yang menyebabkan masalah tapi saya berharap saya bisa mematikan memori tidak aktif hanya untuk menghilangkan sumber variabilitas itu. Apakah rusak? Saya tidak akan mengatakannya sama sekali, tetapi saya akan mengatakan bahwa saya kira manajemen memori tidak dioptimalkan untuk kasus penggunaan saya.

pengguna100345
sumber
0

Memori tidak aktif yang digunakan oleh aplikasi yang baru saja aktif dan keluar. OS X menyimpannya untuk berjaga-jaga jika pengguna ingin membuka program lagi. Dalam hal ini, OS X tidak perlu memindahkan memori yang mempercepat kecepatan kinerja. Jika Anda tidak membuka kembali program, setelah beberapa saat memori yang tidak aktif akan dibebaskan atau dipindahkan. (C)

Fitur ini keren ketika Anda memiliki banyak RAM, tetapi ketika tidak cukup mengganggu. Sebenarnya ini semua tentang apel. Ketika Anda memiliki gadget atau Mac yang kuat semuanya keren, tetapi ketika ketika perangkat Anda menjadi lebih tua semua fitur memperlambatnya.

Jadi kamu harus menggunakan trik khusus untuk mengelolanya.

Untuk memori tidak aktif ada perintah purgeuntuk membebaskannya.

A. Shulev
sumber
-3

Pada dasarnya itu rusak. RAM yang tidak aktif harus "dibersihkan" secara otomatis ketika RAM Gratis rendah. Apa gunanya memegang RAM untuk aplikasi yang dibuka sebelumnya dengan harapan pengguna akan membukanya lagi? Fakta bahwa RAM Gratis rendah menunjukkan bahwa aplikasi AKTIF yang ada mungkin tidak memiliki cukup RAM dan bertukar SEKARANG. Menjaga GB RAM untuk aplikasi tertutup hanya bodoh. Menurut keterangan Apple sendiri, RAM yang tidak aktif harus dibersihkan atau dipinjam secara otomatis ketika RAM Bebas rendah. Ini jelas bukan masalahnya.

rouser
sumber
3
Sistem memori virtual membuat sejumlah besar RAM gratis menjadi sia-sia. Ketika sebuah program meminta alokasi memori, kernel membuat lebih banyak memori virtual dan membagikannya seperti permen. Hanya ketika sebuah program mengisi memori dengan data aktual, sistem perlu membuat ruang dalam RAM untuk operasi itu. Itu "ruang membuat" menarik dari memori bebas dan kemudian tidak aktif - dan penundaan untuk melepaskan memori tidak aktif sangat kecil. Pembersihan yang Anda gambarkan adalah persis apa yang terjadi - hanya saja Anda menyiratkan sistem harus melakukan pembersihan di depan ketika sistem malas dan hanya melakukan itu bekerja jika diperlukan.
bmike
@bmike Tetapi apakah tidak berarti bahwa ketika tidak ada RAM yang tersisa dan saya memulai Aplikasi baru, bahwa porsi RAM yang tidak aktif akan menurun dan aktif akan meningkat? Itu jelas tidak terjadi dan dari pengalaman saya sistem menjadi sangat lambat setiap kali tidak ada ram gratis yang tersisa, meskipun ada gigabytes ram tidak aktif. Sistem tampaknya lebih suka menukar disk sebelum mempertimbangkan menggunakan kembali ram tidak aktif.
codingFriend1
4
@ codingFriend1 Mari kita tepat - berapa banyak halaman gratis vm_statmenurut Anda "tidak ada lagi RAM gratis"? Ketika Mac "lambat" untuk apa halaman tersebut masuk dan keluar halaman dihitung vm_stat 1? Setiap kali saya menonton ini pada sistem masalah, saya suka vm_stat 15menjalankan di jendela terminal (atau masuk ke sistem file) sehingga saya bisa tahu persis apa aktivitas paging ketika memutuskan apakah / ketika saya akan menyetel hal-hal seperti pager. Contoh ini memiliki 100 MB RAM gratis, jadi tidak mungkin bahkan di bawah tekanan paging.
bmike
-4

Memori yang tidak aktif pada dasarnya, membuat proses yang sebelumnya tertutup lebih cepat. Jika Anda mendapati bahwa Mac OS menghabiskan terlalu banyak memori, Anda tidak benar-benar membutuhkannya dari puluhan tab yang Anda buka di Safari atau Chrome, cukup gunakan perintah 'pembersihan' di Terminal. Di OS X Mavericks cukup gunakan 'sudo purge' sebagai gantinya (Anda harus memasukkan kata sandi Anda). Ini memangkas detik berharga ketika Anda perlu membuka sesuatu lagi, tetapi jika Anda ingin memainkan game RAM intensif atau membuka aplikasi lapar RAM saya pasti menyarankan menggunakan perintah pembersihan.

Kaness K
sumber
2
Apa bedanya dengan jawaban lain?
user151019