Laman » bagaimana untuk » Mengapa Mengosongkan Ruang Disk Cepat ke Komputer?

    Mengapa Mengosongkan Ruang Disk Cepat ke Komputer?

    Apabila mempelajari lebih lanjut tentang komputer dan bagaimana ia berfungsi, anda akan kadang-kadang menjalankan sesuatu yang nampaknya tidak masuk akal. Dengan itu, mengosongkan ruang cakera sebenarnya mempercepat komputer? Siaran Q & A SuperUser hari ini mempunyai jawapan kepada soalan pembaca yang membingungkan.

    Sesi Soalan & Jawapan hari ini datang kepada kami dengan ihsan SuperUser-bahagian pembahagian Stack Exchange, kumpulan yang diketuai oleh komuniti laman web Q & A.

    Petikan skrin nchenga (Flickr).

    Soalan

    Pembaca SuperUser Remi.b ingin tahu mengapa mengosongkan ruang cakera seolah-olah mempercepatkan komputer:

    Saya telah menonton banyak video dan kini memahami bagaimana komputer berfungsi dengan lebih baik. Saya faham apa RAM, tentang ingatan yang tidak menentu dan tidak menentu, dan proses pertukaran. Saya juga faham mengapa meningkatkan kelajuan RAM komputer.

    Apa yang saya tidak faham adalah mengapa membersihkan ruang cakera seolah-olah mempercepatkan komputer. Adakah ia benar-benar mempercepatkan komputer? Jika ya, mengapa ia berbuat demikian?

    Adakah ia mempunyai kaitan dengan mencari ruang ingatan untuk menyelamatkan benda atau dengan menggerakkan sesuatu di sekeliling untuk membuat ruang berterusan yang cukup lama untuk menyelamatkan sesuatu? Berapa banyak ruang kosong yang harus saya tinggalkan percuma pada cakera keras?

    Mengapa ruang cakera kosong mengosongkan komputer?

    Jawapan

    Penyumbang SuperUser Jason C mempunyai jawapan untuk kami:

    "Mengapa ruang cakera mengosongkan mempercepatkan komputer?"

    Ia tidak, sekurang-kurangnya tidak tersendiri. Ini adalah mitos yang sangat umum. Alasannya adalah mitos biasa kerana mengisi kekunci keras anda sering berlaku pada masa yang sama seperti perkara lain yang secara tradisinya boleh melambatkan komputer anda (A). Prestasi SSD cenderung merendahkan ketika mereka mengisi, tetapi ini adalah isu yang agak baru, unik untuk SSD, dan tidak begitu ketara untuk pengguna kasual. Umumnya, ruang cakera kosong yang rendah hanyalah serpihan merah.

    Sebagai contoh, perkara seperti:

    1. Pemecahan fail. Pemecahan fail adalah isu (B), tetapi kekurangan ruang bebas, sementara pasti salah satu faktor penyumbang, bukanlah satu-satunya penyebabnya. Beberapa perkara penting di sini:

    • Kemungkinan fail yang dipecah adalah tidak berkaitan dengan jumlah ruang kosong yang tersisa di dalam pemacu. Mereka berkaitan dengan saiz blok terdekat ruang bebas pada pemacu (iaitu "lubang" ruang bebas), yang jumlah ruang bebas berlaku untuk meletakkan batas atas. Mereka juga berkaitan dengan bagaimana sistem fail mengendalikan peruntukan fail (lebih lagi di bawah). Pertimbangkan: Pemacu yang 95 peratus penuh dengan semua ruang kosong dalam satu blok berdampingan tunggal mempunyai peluang sifar peratus untuk memecah fail baru (C) (dan peluang memecah file yang ditambah adalah bebas dari ruang kosong). Pemacu yang lima peratus penuh tetapi dengan data tersebar secara merata ke atas pemacu mempunyai peluang pemecahan yang sangat tinggi.
    • Perlu diingat bahawa pemecahan fail hanya memberi kesan apabila fail yang dipecah telah diakses. Pertimbangkan: Anda mempunyai pemanduan yang baik dan defragmentasi yang masih mempunyai banyak "lubang" percuma di dalamnya. Satu senario biasa. Semuanya berjalan lancar. Akhirnya, anda dapat sampai ke titik di mana tidak ada blok kosong ruang kosong yang tersisa. Anda memuat turun filem yang besar, fail akhirnya berakhir dengan teruk. Ini tidak akan melambatkan komputer anda. Semua fail aplikasi anda dan apa yang sebelum ini baik tidak akan terancam secara tiba-tiba. Ini mungkin membuat filem mengambil masa lebih lama untuk memuatkan (walaupun kadar bit filem tipikal adalah sangat rendah berbanding dengan kadar bacaan cakera keras yang kemungkinan besar tidak dapat dikesan), dan ia mungkin mempengaruhi prestasi I / O sementara ketika filem dimuat, tetapi Selain itu, tiada perubahan.
    • Walaupun pemecahan fail sememangnya satu isu, sering kali kesannya dikurangkan oleh OS dan tahap penimbasan dan cache. Tertunda menulis, dibaca terlebih dahulu, strategi seperti prefetcher di Windows, dan lain-lain, semua membantu mengurangkan kesan pemecahan. Anda secara amnya tidak sebenarnya mengalami kesan yang ketara sehingga pemecahan menjadi teruk (saya akan berusaha untuk mengatakan bahawa selagi fail swap anda tidak dipecah, anda mungkin tidak akan perasan).

    2. Pengindeksan carian adalah contoh lain. Katakan bahawa anda telah menghidupkan pengindeksan automatik dan OS yang tidak mengendalikan ini dengan anggun. Apabila anda menyimpan lebih banyak kandungan yang boleh diindeks ke komputer anda (dokumen dan sebagainya), pengindeksan mungkin mengambil masa yang lama dan lebih lama dan mungkin mula memberi kesan pada kelajuan komputer yang dirasakan semasa ia berjalan, baik dalam I / O dan penggunaan CPU . Ini tidak berkaitan dengan ruang bebas, ia berkaitan dengan jumlah kandungan yang boleh diindeks anda. Walau bagaimanapun, kehabisan ruang bebas berjalan seiring dengan menyimpan lebih banyak kandungan, oleh itu sambungan palsu ditarik.

    3. Perisian anti-virus (serupa dengan contoh pengindeksan carian). Katakan bahawa anda mempunyai perisian anti-virus yang ditetapkan untuk melakukan pengimbasan latar belakang pemacu anda. Memandangkan anda mempunyai lebih banyak kandungan yang boleh dipindai, carian memerlukan lebih banyak I / O dan sumber CPU, mungkin mengganggu kerja anda. Sekali lagi, ini berkaitan dengan jumlah kandungan scannable yang anda miliki. Lebih banyak kandungan seringkali sama dengan ruang kosong yang kurang, tetapi kekurangan ruang bebas bukan penyebabnya.

    4. Perisian yang dipasang. Katakan bahawa anda mempunyai banyak perisian yang memasang beban ketika boot komputer anda, sehingga memperlambat waktu start-up. Kelambatan ini berlaku kerana banyak perisian sedang dimuatkan. Walau bagaimanapun, perisian yang dipasang menggunakan ruang cakera keras. Oleh itu, ruang kosong cakera keras berkurangan pada masa yang sama bahawa ini berlaku, dan sekali lagi sambungan palsu boleh dibuat dengan mudah.

    5. Banyak contoh lain di sepanjang garis ini yang, apabila diambil bersama, muncul untuk mengaitkan kekurangan ruang bebas dengan prestasi yang lebih rendah.

    Di atas menggambarkan alasan lain bahawa ini adalah mitos yang sama: Walaupun kekurangan ruang bebas bukanlah penyebab langsung untuk memperlambat, menyahpasang pelbagai aplikasi, mengeluarkan kandungan yang diindeks atau diimbas, dan lain-lain. Kadang-kadang (tetapi tidak selalu, di luar skop jawapan ini) meningkatkan prestasi sekali lagi untuk alasan yang tidak berkaitan dengan jumlah ruang kosong yang tinggal. Tetapi ini juga secara semula jadi membebaskan ruang cakera keras. Oleh itu, sekali lagi, sambungan yang jelas (tetapi palsu) antara "lebih banyak ruang kosong" dan "komputer lebih cepat" boleh dibuat.

    Pertimbangkan: Sekiranya anda mempunyai mesin yang berjalan dengan perlahan kerana banyak perisian yang dipasang, dan lain-lain, klonkan cakera keras anda (betul-betul) ke cakera keras yang lebih besar, kemudian mengembangkan partition anda untuk mendapatkan lebih banyak ruang bebas, mesin tidak akan mempercepatkan secara automatik. Beban perisian yang sama, fail yang sama masih terfragmentasi dengan cara yang sama, pengindeksan carian yang sama masih berjalan, tidak ada perubahan walaupun memiliki ruang kosong.

    "Adakah ia ada kaitan dengan mencari ruang ingatan untuk menyelamatkan sesuatu?"

    Tidak. Tidak. Terdapat dua perkara penting yang perlu diperhatikan di sini:

    1. Pemacu keras anda tidak mencari di sekitar untuk mencari tempat untuk meletakkan perkara. Pemacu keras anda adalah bodoh. Tidak ada apa-apa. Ia adalah satu blok penyimpanan yang ditangani secara membabi buta yang meletakkan perkara di mana OS anda memberitahu dan membaca apa sahaja yang diminta. Pemacu moden mempunyai caching dan mekanisme buffering canggih yang direka untuk meramalkan apa yang OS akan diminta berdasarkan pengalaman yang kami peroleh dari masa ke masa (beberapa pemacu bahkan menyedari sistem fail yang ada pada mereka), tetapi pada dasarnya, fikirkan memandu sebagai satu-satunya penyimpan bata bisu yang besar dengan ciri prestasi bonus sekali-sekala.

    2. Sistem pengendalian anda tidak mencari tempat untuk meletakkan perkara, sama ada. Tiada carian. Banyak usaha telah menyelesaikan masalah ini kerana penting untuk memfokuskan prestasi sistem. Cara data yang sebenarnya dianjurkan pada pemacu anda ditentukan oleh sistem fail anda. Contohnya, FAT32 (lama DOS dan Windows PC), NTFS (edisi kemudian Windows), HFS + (Mac), ext4 (beberapa sistem Linux), dan banyak lagi. Malah konsep "fail" dan "direktori" hanyalah produk sistem fail tipikal - pemacu keras tidak mengetahui apa-apa tentang binatang misterius yang dipanggil fail. Butiran di luar skop jawapan ini. Tetapi pada asasnya, semua sistem fail umum mempunyai cara untuk mengesan tempat ruang yang ada pada pemacu supaya carian ruang bebas adalah, dalam keadaan normal (iaitu sistem fail dalam keadaan baik), tidak perlu. Contoh:

    • NTFS mempunyai jadual fail induk, yang termasuk fail khas Bitmap $, dan sebagainya, dan banyak data meta yang menerangkan pemacu. Pada dasarnya ia menjejaki tempat blok percuma seterusnya supaya fail-fail baru boleh ditulis terus ke blok percuma tanpa perlu mengimbas pemacu setiap kali.
    • Satu lagi contoh: Ext4 mempunyai apa yang dipanggil peruntukan bitmap, penambahbaikan ke atas ext2 dan ext3 yang pada dasarnya membantu ia secara langsung menentukan di mana blok percuma bukannya mengimbas senarai blok percuma. Ext4 juga menyokong peruntukan tertangguh, iaitu penyerapan data dalam RAM oleh OS sebelum menulisnya ke pemacu untuk membuat keputusan yang lebih baik tentang tempat untuk meletakkannya untuk mengurangkan pemecahan.
    • Banyak contoh lain.

    "Atau dengan perkara yang bergerak di sekitar untuk membuat ruang berterusan yang cukup lama untuk menyelamatkan sesuatu?"

    Tidak. Ini tidak berlaku, sekurang-kurangnya tidak dengan sistem fail apa pun yang saya ketahui. Fail hanya berakhir berpecah-belah.

    Proses "menggerakkan sesuatu di sekeliling untuk membentuk ruang yang cukup panjang untuk menyelamatkan sesuatu" dipanggil defragmenting. Ini tidak berlaku apabila fail ditulis. Ini berlaku apabila anda menjalankan defragmenter cakera anda. Pada edisi terbaru Windows, sekurang-kurangnya, ini berlaku secara automatik pada jadual, tetapi tidak pernah dicetuskan dengan menulis file.

    Mampu untuk elakkan menggerakkan perkara di sekeliling seperti ini adalah kunci kepada prestasi sistem fail, dan mengapa pemecahan itu berlaku dan mengapa defragmentasi wujud sebagai langkah yang berasingan.

    "Berapa banyak ruang kosong yang harus saya biarkan secara percuma pada cakera keras?"

    Ini adalah soalan yang lebih sukar untuk dijawab (dan jawapan ini telah berubah menjadi sebuah buku kecil).

    Peraturan ibu:

    1. Untuk semua jenis pemacu:

    • Paling penting, tinggalkan ruang kosong yang cukup untuk anda menggunakan komputer anda dengan berkesan. Jika anda kehabisan ruang untuk bekerja, anda akan mahukan pemacu yang lebih besar.
    • Banyak alat defragmentasi cakera memerlukan jumlah minimum ruang kosong (saya rasa yang dengan Windows memerlukan 15 peratus, kes terburuk) untuk bekerja. Mereka menggunakan ruang kosong ini untuk memegang fail sementara yang dipecah sementara yang lain disusun semula.
    • Tinggalkan ruang untuk fungsi OS yang lain. Sebagai contoh, jika mesin anda tidak mempunyai banyak fizikal RAM, dan anda mempunyai memori maya yang didayakan dengan fail halaman bersaiz dinamik, anda akan mahu meninggalkan ruang yang cukup untuk saiz maksimum fail halaman. Atau jika anda mempunyai komputer riba yang anda masukkan ke mod hibernasi, anda akan memerlukan ruang kosong yang cukup untuk fail keadaan hibernasi. Perkara seperti itu.

    2. Spesifik SSD:

    • Untuk kebolehpercayaan yang optimum (dan untuk tahap yang lebih rendah, prestasi), SSD memerlukan ruang bebas, yang, tanpa terperinci, mereka menggunakan untuk menyebarkan data di sekitar pemacu untuk mengelakkan sentiasa menulis ke tempat yang sama (yang memakai mereka keluar) . Konsep meninggalkan ruang bebas dipanggil over-provisioning. Ia penting, tetapi dalam banyak SSD, ruang wajib yang disediakan terlebih dahulu sudah ada. Iaitu, pemacu sering mempunyai beberapa dozen GB berbanding mereka melaporkan kepada OS. Pemacu rendah biasanya memerlukan anda untuk meninggalkan secara manual tidak berpartisipasi ruang, tetapi untuk pemacu dengan OP wajib, anda tidak perlu meninggalkan apa-apa ruang kosong. Satu perkara penting untuk diperhatikan di sini adalah bahawa ruang yang dibekalkan lebih kerap hanya diambil dari ruang yang tidak berpartisi. Jadi jika partition anda mengambil seluruh drive anda dan anda meninggalkan ruang kosong di atasnya, itu tidak sentiasa kiraan. Ramai kali, penggunaan lebih banyak peruntukan memerlukan anda mengecilkan partition anda menjadi lebih kecil daripada saiz pemacu. Semak manual pengguna SSD anda untuk maklumat lanjut. TRIM, pengumpulan sampah, dan sebagainya mempunyai kesan juga, tetapi mereka berada di luar skop jawapan ini.

    Secara peribadi, saya biasanya meraih capaian yang lebih besar apabila saya mempunyai kira-kira 20-25 peratus ruang kosong yang tinggal. Ini tidak berkaitan dengan prestasi, hanya apabila saya sampai ke tahap itu, saya berharap bahawa saya mungkin akan kehabisan ruang untuk data tidak lama lagi dan sudah waktunya untuk mendapatkan pemanduan yang lebih besar.

    Lebih penting daripada menonton ruang kosong adalah memastikan defragmentasi yang dijadualkan diaktifkan di mana sesuai (tidak pada SSD) supaya anda tidak pernah sampai ke titik di mana ia menjadi cukup mengerikan untuk menjejaskan anda.


    Terdapat satu perkara terakhir yang patut disebut. Salah satu jawapan yang lain di sini menyebut bahawa mod setengah dupleks SATA menghalang membaca dan menulis pada masa yang sama. Walaupun benar, ini sangat diminimumkan dan kebanyakannya tidak berkaitan dengan isu prestasi yang dibincangkan di sini. Apa maksudnya, semata-mata, ialah data tidak boleh dipindahkan dalam kedua-dua arah pada wayar pada masa yang sama. Walau bagaimanapun, SATA mempunyai spesifikasi yang agak rumit yang melibatkan saiz blok maksimum kecil (kira-kira 8kB setiap blok pada dawai, saya fikir), membaca dan menulis beratur operasi, dan sebagainya, dan tidak menghalang menulis ke buffer berlaku semasa membaca sedang berjalan, operasi, dan lain-lain.

    Mana-mana penyekat yang berlaku adalah kerana bersaing untuk sumber fizikal, biasanya dikurangkan dengan banyak cache. Mod dupleks SATA hampir tidak sepatutnya tidak relevan di sini.


    (A) "Perlahan" adalah istilah yang luas. Di sini saya menggunakannya untuk merujuk kepada perkara-perkara yang sama ada saya / O-bound (iaitu jika komputer anda sedang duduk di sana angka-angka kasar, kandungan cakera keras tidak mempunyai kesan) atau terikat CPU dan bersaing dengan perkara-perkara yang berkaitan dengan perkara yang tinggi Penggunaan CPU (iaitu pengimbasan perisian anti-virus ton).

    (B) SSD dipengaruhi oleh pemecahan dalam kelajuan akses berturut-turut secara umumnya lebih cepat daripada akses rawak, walaupun SSD tidak menghadapi batasan yang sama seperti peranti mekanikal (walaupun begitu, kekurangan pemecahan tidak menjamin akses berikutan kerana memakai meratakan, dll.). Walau bagaimanapun, dalam hampir setiap senario penggunaan umum, ini bukan isu. Perbezaan prestasi kerana pemecahan SSD biasanya boleh diabaikan untuk perkara seperti memuatkan aplikasi, boot komputer, dan lain-lain.

    (C) Dengan mengandaikan sistem fail waras yang tidak memecah fail dengan tujuan.

    Pastikan anda membaca lebih lanjut perbincangan yang meriah di SuperUser melalui pautan di bawah!


    Mempunyai sesuatu untuk menambah penjelasannya? Bunyi dalam komen. Ingin membaca lebih banyak jawapan dari pengguna Stack Exchange yang berteknologi tinggi? Lihat thread perbincangan penuh di sini.