Apakah ada kelemahan dari saklar “/ 3Gb” di boot.ini untuk Windows 32bit?

8

Saran Microsoft untuk menggunakan / 3Gb beralih di Boot.ini untuk mendapatkan lebih banyak memori untuk proses yang berjalan pada sistem 32bit.

Saat ini saya memerlukan banyak memori untuk proses devenv (Visual Studio 2008) karena saya memiliki solusi yang kompleks yang memiliki banyak proyek dan formulir dan menghabiskan banyak sumber daya dalam waktu desain.

Saya ingin bertanya, jika ada yang tahu, apa saja aspek negatif dari penggunaan / 3Gb switch, apakah ada keadaan di mana tidak disarankan untuk menggunakannya.

Bogdan_Ch
sumber
Terima kasih untuk semua yang menjawab, semua posting sangat informatif dan ada banyak pertimbangan untuk dipertimbangkan. Saya juga membaca beberapa dokumentasi dan memperhatikan bahwa untuk MS SQL Server Anda tidak memerlukan ini bahkan untuk sistem 32 bit, Anda dapat mengaktifkan Address Windowing Extensions (AWE) technet.microsoft.com/en-us/library/ms190673.aspx
Bogdan_Ch

Jawaban:

11

Pada mesin desktop, kemungkinan tidak ada masalah. Kumpulan kernel lebih kecil pada mesin W2K3 / WXP dengan switch switch 3GB. Ini mungkin bukan masalah untuk mesin desktop karena Anda seharusnya tidak mendekati melelahkan kumpulan halaman kernel Anda. Di server, melelahkan kumpulan kernel akan menyebabkan Anda mengalami masalah, dan kemungkinan besar Anda bisa melelahkannya.

Berikut ini beberapa detail bagus tentang pertimbangan memori kernel yang terkait dengan sakelar / 3GB. Jika Anda benar-benar ingin, Anda dapat menjalankan debugger kernel NT dan profil sistem Anda sebelum dan setelah perubahan dengan informasi dalam dokumen ini: http://blogs.technet.com/markrussinovich/archive/2009/03/26 /3211216.aspx

Evan Anderson
sumber
3
Saya selalu bertanya-tanya, ketika saya mendapatkan downvotes, mengapa saya mendapatkan downvotes. Saya tidak percaya apa pun dalam posting ini secara faktual salah, tetapi jika itu saya ingin tahu sehingga saya bisa menghapus posting atau memperbaikinya. Saya ingin tahu apa masalah yang dihadapi oleh para downvoter ... (dan, tentu saja, saya menyadari bahwa mereka tidak akan pernah kembali untuk menanggapi komentar ini ... oh, well ...)
Evan Anderson
5

Anda akan memiliki lebih sedikit memori yang tersedia untuk kernel Anda - sakelar menyesuaikan ruang alamat mode kernel / ruang alamat mode pengguna, sebelumnya 2GB ke 2GB, menjadi 1GB hingga 3GB. Baca posting Raymond Chen di / 3GB, dan tindak lanjutnya, sebelum melanjutkan.

crb
sumber
5

Sebelum melakukan perubahan, Anda harus terlebih dahulu memeriksa apakah proses yang ingin Anda jalankan terkait dengan bendera LARGEADDRESSAWARE. Dengan flag, tidak akan ada perubahan bagaimana proses menggunakan memori.

Anda dapat menggunakan Alat SDK untuk ini:

nama exeName sampah / header

Header yang dimuntahkan harus mencakup:

Aplikasi dapat menangani alamat besar (> 2GB)

Saya melakukan pemeriksaan pada devenv.exe dan dalam VS2008 tidak termasuk bendera.

Jack Bolding
sumber
4

Banyak kekurangannya. Secara default, Windows akan mengalokasikan kumpulan memori 4GB untuk setiap proses, yang terbagi 50/50 antara proses mode kernel (umum untuk semua aplikasi) dan proses mode pengguna (unik untuk setiap aplikasi) (penjelasan yang disederhanakan). Oleh karena itu aplikasi yang berjalan pada sistem memiliki memori 2GB, sedangkan sistem itu sendiri memiliki 2GB sendiri. Catatan penting: 2GB kedua ini adalah 2GB yang sama untuk semua aplikasi yang berjalan di sistem.

Saklar / 3GB menyesuaikan pemisahan sehingga mode kernel mendapat 1GB dan mode pengguna mendapat 3GB.

Sekarang pertimbangkan aplikasi yang sedang Anda jalankan. Beberapa dari mereka akan membutuhkan lebih banyak ruang mode kernel, beberapa akan membutuhkan lebih banyak ruang mode pengguna. Ketika kumpulan mode kernel dibagikan, Anda dapat dengan cepat kehabisan memori di sana jika Anda menjalankan aplikasi yang membuat memori mode kernel tertekan. Di sisi lain, jika aplikasi Anda menggunakan banyak memori mode pengguna, menerapkan / 3GB akan memberi mereka ruang kepala yang mereka butuhkan.

Jadi itu benar-benar ke sifat aplikasi yang ingin Anda jalankan. Aturan utamanya adalah berkonsultasi dengan vendor aplikasi dan membaca dokumentasinya; khususnya jika vendor aplikasi tidak memiliki rekomendasi dengan cara apa pun Anda harus mulai menjadi curiga ... apakah mereka telah menguji aplikasi mereka dengan benar atau tidak? Ini adalah hal dasar yang harus diketahui oleh setiap vendor.

Ada diskusi yang cukup bagus tentang semuanya di sini: http://blogs.technet.com/askperf/archive/2007/03/23/memory-management-demystifying-3gb.aspx

Dalam kasus khusus Anda, saya pikir beralih ke 64 bit dan mendapatkan lebih banyak RAM akan menjadi solusi yang lebih layak, karena / 3GB tidak akan benar-benar membuat Anda mendapatkan apa yang Anda inginkan (apakah ini bekerja pada XP?)

Maximus Minimus
sumber
Saya pikir, daripada "mode kernel pool" lebih baik untuk mengatakan "ruang alamat kernel virtual". Juga "dibagikan" berarti bagi saya "identik untuk semua aplikasi". Benarkah begitu?
dma_k
1

Kami telah menggunakannya pada beberapa sistem yang menjalankan aplikasi pemrosesan gambar pada banyak gambar besar, dan tidak pernah menemukan masalah. Dalam situasi apa pun di mana Anda memerlukan Gig ekstra memori aplikasi, Anda mungkin akan membiarkan aplikasi berjalan dan tidak melakukan hal lain dengan sistem, jadi mungkin tidak akan ada banyak dampak.

Ward - Reinstate Monica
sumber
1

Ini hanya bekerja dengan andal (kecuali untuk driver debugging dll) pada OS server perusahaan untuk binari LARGEADDRESSAWARE.

devenv bukan biner seperti itu . SQL Server dan Exchange, misalnya.

Anda memerlukan OS x64 bit dan edit VS x64 : LARGEADDRESSAWARE terdeteksi pada x64 untuk menembus batas 2GB.

gbn
sumber
actaully devenv.exe adalah menyadari besar.
Jack Bolding
benar, saya melewatkan itu pada edit saya tentang x64. Diedit lagi
gbn