Mengapa chkdsk menggunakan 90% dari RAM saya?

24

Ketika saya membangun komputer baru saya, saya memberikan yang lama kepada orang tua saya yang sangat membutuhkan upgrade, setelah membersihkan semuanya, tentu saja, hanya menyisakan OS dan beberapa program. Ini berfungsi dengan baik untuk sementara waktu, sebelum mulai gagal memuat Windows (itu hanya akan macet). Setelah menyelidiki perilaku ini dan bertanya-tanya, saya memutuskan bahwa itu mungkin hard drive yang gagal, jadi saya menariknya dan menyambungkannya ke komputer saya sendiri untuk menjalankan chkdsk (awalnya saya melakukan ini untuk mencoba dan boot ke drive, tetapi karena komputer saya diatur dengan RAID dan instalasi Windows tidak memiliki driver RAID, saya hanya boot ke instalasi Windows 7 saya sendiri dan menjalankan chkdsk di atasnya).

Saya melakukan ini Jumat malam lalu, dan sudah berjalan sejak saat itu (yang membuatnya sekitar 6 hari sejauh ini). Saya tidak terkejut karena itu bisa lambat, itu adalah hard drive 1 TB, dan Western Digital "hijau" pada saat itu, jadi itu mungkin berjalan pada RPM yang lebih lambat. Saya melihatnya membuat kemajuan, jadi saya tahu itu tidak macet, dan lampu hard drive telah menyala terus-menerus, di komputer saya, yang belum pernah saya gunakan untuk hal lain, selain berbagi file melalui jaringan dan web cahaya browsing, saat ini sudah berjalan.

Komputer saya memiliki 16 GB RAM, dan menjalankan Windows 7 Pro x64. Mengapa chkdsk mengambil 90% dari itu? Ini memegang level itu stabil, dan telah selama berhari-hari, terjadi antara 90% dan 91%, karena membebaskan dan mengisi memori terus-menerus. Penggunaan CPU sangat rendah (yang saya harapkan karena ini adalah operasi yang sangat berat I / O).

Sepertinya tidak ada hal buruk yang terjadi, tetapi saya ingin tahu. Mengapa chkdsk mengambil begitu banyak memori? Saya setidaknya senang bahwa tampaknya melakukan ini dengan cerdas, karena mempertahankan tingkat tinggi tanpa mulai meronta-ronta HDD utama dengan paging.

Apakah ada yang tahu? Apakah ini normal?

Ben Richards
sumber

Jawaban:

19

Jika sudah berjalan selama beberapa hari, saya berasumsi bahwa Anda berlari chkdskdengan /rbendera.

Dengan Windows 7, menggunakan RAM sebanyak itu normal. Sumber

Tim sistem file segera mulai menyelidiki masalah ini. [...] [F] dari perspektif mereka penggunaan memori adalah dengan desain dan merupakan perubahan Windows 7 khusus untuk skenario ini (flag / r mengambil kunci eksklusif dan memperbaiki disk dan asumsi kami adalah Anda benar-benar akan suka disk yang harus diperbaiki sebelum Anda melakukan lebih banyak hal pada mesin [...]).

afrazier
sumber
Saya menggunakan GUI, tetapi saya mencentang kotak centang untuk memindai dan mencoba memperbaiki bad sector, yang setara. Terima kasih untuk tautannya!
Ben Richards
Bukan hanya Windows 7; Windows 2008 R2 juga masuk ke kondisi yang tidak terbayangkan ini. Saya menurunkan satu disk untuk memeriksa, dan chkdsk benar - benar perlu mengkonsumsi 20GB RAM untuk disk tunggal itu dan memperlambat seluruh server. Itu bukan kesalahan, 20GB memori.
icelava
@icelava: Menimbang bahwa 2008 R2 adalah kelanjutan dari basis kode Windows 7, itu tidak mengejutkan. Ini mungkin akan mempengaruhi semua OS yang lebih baru juga.
afrazier
Saya memeriksa disk NTFS 2TB eksternal saya tanpa / r (atau lainnya) switch dan masih mengkonsumsi hampir semua RAM (saya punya 5 GB). Windows 7 64bit.
David Balažic
Menarik. Saya hanya menjalankannya terhadap disk 1,5 TB dan bahkan tidak mencapai 1 GB pada sistem 8 GB. Saya berharap cek hanya-baca hanya menggunakan RAM sebanyak yang diperlukan.
afrazier
8

Saya menjalankan CHKDSK /rpada drive Seagate 1TB SATA 3GBs saat ini - Windows 7 x64 Ultimate, CHKDSK menghabiskan 31GB RAM 32GB saya. Namun, jika Anda memuat program lain seperti After Effects, CHKDSK melepaskan RAM untuk memungkinkan program berjalan dengan cukup baik.

Richard
sumber
5

Jika Anda memiliki lebih dari 4 GB RAM maka Anda dapat membatasi penggunaan RAM chkdsk hingga 4 GB dengan menggunakan versi chkdsk 32bit. Itu ditemukan di C: \ Windows \ SysWow64 \ chkdsk.exe

Ini mungkin keuntungan, karena program lain yang sudah dimuat tidak akan ditukar ke disk dan cache disk tidak dikosongkan. Jadi menjalankan chkdsk secara paralel dengan program lain tidak merusak kinerja program lain, kecuali jika mereka menggunakan disk yang sama.

informatorius
sumber
Tip yang bagus! Mesin dev saya memiliki 48GB karena suatu alasan dan saya melihat penurunan besar dalam kinerja dengan proses baru (dan sebagai pengembang, proses baru dimulai sangat, sangat sering) .karena berjalan chkdskdi latar belakang, menghabiskan hampir semua itu. Ini menyelamatkan hari;)
Abel
3

Seperti yang sudah diposting, ini adalah desain pada Windows 7. "Desain" diperbaiki dimulai dengan Windows 8 dan sekarang chkdsk menggunakan lebih sedikit RAM. Jika Anda ingin cara Win7 menggunakan semua RAM untuk meningkatkan kinerja, jalankan chkdskdengan parameter /perf.

/ perf NTFS saja: (Harus digunakan dengan "/ memindai") Menggunakan lebih banyak sumber daya sistem untuk menyelesaikan pemindaian secepat mungkin. Ini mungkin memiliki dampak kinerja negatif pada tugas-tugas lain yang berjalan pada sistem.

magicandre1981
sumber
2

Ini tampaknya dirancang. RAM yang tidak digunakan adalah sumber daya yang terbuang. Tidak ada alasan apa pun untuk meminimalkan penggunaan ram dan menjaga RAM dalam "cadangan" ketika itu dapat hampir secara langsung diulang sesuai kebutuhan. Windows 8 akan menggunakan ram untuk apa saja daripada membiarkannya diam. Mungkin filosofi ini dimulai kembali di Windows 7 dan melibatkan CHKDSK. Saya tidak tahu apa manfaat yang diperoleh CHKDSK dari penggunaan RAM yang tinggi, tetapi saya bersedia percaya ada manfaatnya. Saya sudah lama belajar bahwa hanya karena saya tidak mengerti, tidak berarti tidak ada alasan yang bagus. Selama penggunaan memorinya berkurang karena program lain membutuhkan memori, ini bukan masalah.

Nathan Brazil
sumber
2
Ram yang tidak digunakan hanya terbuang sia-sia sampai digunakan oleh beberapa program lain yang membutuhkannya. Jika Anda menggunakan semua RAM dan kemudian ingin memulai program lain, Anda baru saja menambah waktu muat berdasarkan urutan besarnya karena pertama-tama Anda harus membuang semua barang itu ke dalam disk yang sangat lambat. Tidak ada yang akan memperhatikan masalah ini jika ini tidak menimbulkan masalah. Selalu memiliki cadangan RAM untuk memulai proses baru adalah ide yang bagus. Saya ingin tahu siapa ide cemerlang untuk mengkonsumsi semua RAM.
horta
2
Beberapa program, seperti VMware, akan menolak untuk memulai VMs kecuali tersedia jumlah RAM yang cukup (tidak mencoba untuk mengkonsumsi RAM, itu hanya menyerah tanpa mencoba, artinya chkdsk bahkan tidak memiliki kesempatan untuk melepaskan). Membunuh chkdsk berpotensi merusak efek, jadi pilihan Anda adalah 1) menunggu jumlah waktu yang tidak masuk akal atau 2) risiko kehilangan data pada drive yang sedang diperiksa. Yay Microsoft.
aggregate1166877
0

Itu bug. Saya mengalami crash pada mesin saya dengan menggunakan terlalu banyak memori, dan itu dengan ram 8GB dan file swap 4GB. Tidak mungkin itu terjadi. Mereka bisa menyebutnya 'dengan desain', tapi itu tidak ada artinya. Ini jelas bug. Tidak ada dasar valid tunggal untuk program chkdsk untuk menyimpan banyak data dalam ram.

metamorfosis
sumber
2
Format T&J situs mencadangkan jawaban untuk solusi atas pertanyaan. Posting ini benar-benar sebuah komentar daripada jawaban. Anda selalu dapat mengomentari posting Anda sendiri, dan setelah Anda memiliki reputasi yang cukup Anda akan dapat mengomentari posting apa pun . Non-jawaban cenderung menarik downvotes dan dapat dihapus.
fixer1234
Dalam pandangan saya itu adalah jawaban atas pertanyaan yang ditanyakan oleh Poster dan karena itu solusi, bukan komentar.
metamorfosis