Masalah yang saya alami adalah pada server (dan kotak OSX lainnya juga) kami memiliki 4GB RAM, tetapi kami menemukan bahwa OSX hanya menggunakan 40-60% dari RAM yang tersedia sementara juga memiliki swap 6-7GB. Server menjalankan Apache dan MySQL sedangkan mesin lainnya adalah desktop.
Saya telah membandingkan penggunaannya dengan kotak Linux yang serupa (perangkat keras dan perangkat lunak) dan menemukan bahwa Linux biasanya menggunakan 80-90% dari RAM dan memiliki file swap yang jauh lebih kecil (2-3GB). Server Linux juga biasanya berjalan lebih cepat.
Apakah ada cara untuk memaksa OSX untuk menggunakan lebih banyak atau sebagian besar RAM sebelum menggunakan file swap disk?
Di Windows Anda benar-benar dapat menonaktifkan swap sama sekali. Apakah ada yang serupa untuk OSX?
sumber
du -sh /var/vm
- yang mengatakan itu mungkin sangat tinggi jika ada sleepimage (paling sering terlihat di laptop) hadir. Ada beberapa alat yang tersedia yang dapat membantu Anda menentukan apakah memori yang menyebabkan perlambatan:vm_stat
- khususnya Anda tertarik pada nilai pageouts - jika itu meningkat sedikit maka Anda tahu Anda bertukar berat. Untuk info lebih lanjut tentang cara Apple mengelola memori mereka: developer.apple.com/documentation/Performance/Conceptual/…Jawaban:
Jawaban paling mendasar? Tidak. OS menangani manajemen memori untuk pengguna - memberikan proses sebanyak memori yang diperlukan seperti yang diminta dan tidak memberikan banyak hal dalam hal dapat memodifikasi bagaimana kinerja sistem. Itu tidak membantu banyak dengan mencoba mencari tahu apakah pemanfaatan memori adalah bagian dari persamaan mengapa server Linux mengungguli server Mac.
Karena kurangnya "kemampuan hack" dalam sistem memori virtual, pilihan terbaik Anda adalah mengevaluasi kinerja memori virtual untuk melihat apakah itu benar-benar alasan Anda mengalami masalah kinerja - yang paling mendasar adalah menggunakan
vm_stat
atau menggunakan, ikuti. hidup dengan menggunakanvm_stat [number of seconds]
untuk melihat berapa banyak halaman yang keluar terjadi. Memindahkan halaman yang tidak digunakan dari RAM ke hard drive memiliki biaya yang jauh lebih rendah daripada mengambil halaman kembali dari hard drive ke RAM Anda. Halaman dalam istilah OS X mengacu pada 4kb data.Selain itu, proses 32 bit (mis. Illustrator) tidak dapat mengakses lebih dari 4GB sehingga secara teori dimungkinkan untuk memiliki 2GB gratis dan memiliki proses kehabisan memori jika Anda telah menginstal 6GB.
Pada desktop dan server saya, saya akan menjalankan
vm_stat 2
dan memeriksa kolom terakhir - terutama ketika Anda mengalami penundaan beberapa detik ketika beralih untuk mengatakan Illustrator.Untuk mengetahui seberapa besar swap sebenarnya, Anda dapat memeriksa ukuran swap di Activity Monitor atau menjalankannya
du -shc /var/vm/swap* | tail -n 1
.Menggunakan
du -sh /var/vm
memiliki satu peringatan: pada laptop yang memiliki mode hibernate (apa pun selama 4 tahun terakhir atau lebih baru) mungkin adasleepimage
kira-kira ukuran berapa banyak memori yang telah Anda instal.Jargon Memori Mac OS X:
Wired : Ini mengacu pada kode kernel dan semacamnya. Memori yang seharusnya tidak pernah dipindahkan dari RAM. Juga dikenal sebagai memori penduduk.
Shared : Memory yang dibagi antara dua proses atau lebih. Kedua proses akan menunjukkan jumlah memori ini sehingga dapat sedikit menyesatkan mengenai seberapa banyak memori yang sebenarnya digunakan.
Nyata : Ini adalah penggunaan memori "nyata" untuk aplikasi seperti yang dilaporkan oleh task_info () - jumlah kasar dari jumlah halaman fisik yang dimiliki proses saat ini. (RSIZE)
Pribadi : Ini adalah memori yang digunakan hanya oleh proses yang digunakan dalam memori Residen. (RPRVT)
Virtual : Jumlah total ruang alamat dalam proses yang dipetakan ke apa pun - apakah itu ruang besar yang sewenang-wenang untuk variabel atau apa pun - tidak menyamakan dengan penggunaan VM yang sebenarnya. (VSIZE)
Aktif : Memori saat ini dilabeli sebagai aktif dan digunakan RAM.
Tidak aktif : "Memori tidak aktif tidak lagi digunakan dan telah di-cache ke disk. Itu akan tetap dalam RAM sampai aplikasi lain membutuhkan ruang. Meninggalkan informasi ini dalam RAM adalah untuk keuntungan Anda jika Anda (atau klien komputer Anda) kembali untuk nanti. " - Bantuan Mac OS X
Gratis : Jumlah RAM sebenarnya tersedia tanpa data apa pun.
Dokumentasi terbaik yang saya tahu (dan telah dapat ditemukan dalam penelitian tindak lanjut) adalah artikel Apple Mengelola Memori di situs web pengembangnya.
Sumber berharga lainnya: milis Darwin-dev: [ 1 ], [ 2 ] dan artikel lama tentang MacOSXHints . Selain itu Mike Ash telah memposting pengantar awam yang baik di blog - nya
Mungkin saja (saya belum mencobanya) untuk menonaktifkan sistem memori virtual dengan menjalankan
sudo launchctl unload /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
dan kemudian restart sehingga dynamic_pager (program yang benar-benar melakukan alokasi memori virtual) tidak memulai. Namun karena OS menganggapnya memiliki memori virtual, Anda mungkin menemukan diri Anda mengalami masalah sangat, sangat cepat. Untuk memuatnya kembali dijalankansudo launchctl load /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
(jika perlu dari mode pengguna tunggal)sumber