Di sini, saya menulis buku secara tidak sengaja. Dapatkan kopi dulu.
Mengapa mengosongkan ruang disk mempercepat komputer?
Tidak, setidaknya tidak dengan sendirinya. Ini adalah mitos yang sangat umum. Alasannya adalah mitos umum adalah karena mengisi hard drive Anda sering terjadi bersamaan dengan hal-hal lain yang secara tradisional dapat memperlambat † komputer Anda. Kinerja SSD cenderung menurun ketika drive terisi , tetapi ini adalah masalah yang relatif baru, unik untuk SSD, dan tidak terlalu terlihat bagi pengguna biasa. Secara umum, ruang disk kosong yang rendah hanyalah herring merah .
Misalnya, hal-hal seperti:
Fragmentasi file. Fragmentasi file adalah masalah †† , tetapi kurangnya ruang kosong, sementara jelas salah satu dari banyak faktor yang berkontribusi, bukan satu-satunya penyebabnya. Beberapa poin penting di sini:
Kemungkinan file terfragmentasi tidak terkait dengan jumlah ruang kosong yang tersisa di drive. Mereka terkait dengan ukuran blok ruang bebas terbesar yang bersebelahan pada drive (misalnya "lubang" ruang kosong), di mana jumlah ruang bebas terjadi untuk menempatkan batas atas . Mereka juga terkait dengan bagaimana sistem file menangani alokasi file (lebih lanjut di bawah). Pertimbangkan: Drive yang 95% penuh dengan semua ruang kosong dalam satu blok yang berdekatan memiliki peluang 0% untuk memecah- mecah file baru chance (dan kemungkinan memecah-mecah file yang ditambahkan tidak tergantung pada ruang kosong). Drive yang penuh 5% tetapi dengan data yang tersebar merata di drive memiliki peluang fragmentasi yang sangat tinggi.
Ingatlah bahwa fragmentasi file hanya memengaruhi kinerja ketika file yang difragmentasi sedang diakses . Pertimbangkan: Anda memiliki drive defragmented yang bagus yang masih memiliki banyak "lubang" gratis di dalamnya. Skenario umum. Semuanya berjalan dengan lancar. Namun, akhirnya, Anda sampai pada titik di mana tidak ada lagi blok ruang kosong yang tersisa. Anda mengunduh film besar, file akhirnya menjadi sangat terfragmentasi. Ini tidak akan memperlambat komputer Anda. Semua file aplikasi Anda dan yang sebelumnya baik-baik saja tidak akan tiba-tiba menjadi terfragmentasi. Ini mungkin membuat filmmembutuhkan waktu lebih lama untuk memuat (meskipun kecepatan bit film tipikal sangat rendah dibandingkan dengan kecepatan baca hard drive yang kemungkinan besar tidak akan terlihat), dan itu mungkin mempengaruhi kinerja I / O-terikat saat film sedang dimuat, tetapi selain itu, tidak ada yang berubah.
Sementara fragmentasi file tentu menjadi masalah, sering kali efeknya dikurangi oleh OS dan buffering dan caching level perangkat keras. Tertunda menulis, membaca-depan, strategi seperti prefetcher di Windows, dll., Semua membantu mengurangi efek fragmentasi. Anda biasanya tidak benar - benar mengalami dampak yang signifikan sampai fragmentasi menjadi parah (saya bahkan berani mengatakan bahwa selama file swap Anda tidak terfragmentasi, Anda mungkin tidak akan pernah melihat).
Pengindeksan pencarian adalah contoh lain. Katakanlah Anda mengaktifkan pengindeksan otomatis dan OS yang tidak menangani ini dengan anggun. Saat Anda menyimpan lebih banyak dan lebih banyak konten yang dapat diindeks ke komputer Anda (dokumen dan semacamnya), pengindeksan mungkin memakan waktu lebih lama dan lebih lama dan mungkin mulai memiliki efek pada kecepatan yang dirasakan komputer Anda saat sedang berjalan, baik dalam penggunaan I / O dan CPU . Ini tidak terkait dengan ruang kosong, ini terkait dengan jumlah konten yang dapat diindeks yang Anda miliki. Namun, kehabisan ruang kosong berjalan seiring dengan menyimpan lebih banyak konten, maka sambungan palsu dibuat.
Perangkat lunak antivirus. Mirip dengan contoh pengindeksan pencarian. Katakanlah Anda memiliki perangkat lunak antivirus yang diatur untuk melakukan pemindaian latar belakang drive Anda. Karena Anda memiliki lebih banyak konten yang dapat dipindai, pencarian membutuhkan lebih banyak sumber daya I / O dan CPU, mungkin mengganggu pekerjaan Anda. Sekali lagi, ini terkait dengan jumlah konten yang dapat dipindai yang Anda miliki. Lebih banyak konten sering sama dengan lebih sedikit ruang kosong, tetapi kurangnya ruang kosong bukanlah penyebabnya.
Perangkat lunak yang diinstal. Katakanlah Anda memiliki banyak perangkat lunak yang diinstal yang dimuat saat komputer Anda boot, sehingga memperlambat waktu start-up. Perlambatan ini terjadi karena banyak perangkat lunak sedang dimuat. Namun, perangkat lunak yang diinstal membutuhkan ruang hard drive. Oleh karena itu ruang kosong hard drive berkurang pada saat yang sama saat ini terjadi, dan sekali lagi koneksi yang salah dapat segera dibuat.
- Banyak contoh lain di sepanjang garis-garis itu yang, ketika diambil bersama-sama, tampaknya sangat mengaitkan kurangnya ruang bebas dengan kinerja yang lebih rendah.
Di atas mengilustrasikan alasan lain bahwa ini adalah mitos yang umum: Walaupun kurangnya ruang bebas bukan merupakan penyebab langsung dari pelambatan, menghapus berbagai aplikasi, menghapus konten yang diindeks atau dipindai, dll. Kadang-kadang (tetapi tidak selalu; di luar ruang lingkup ini jawab) meningkatkan kinerja lagi untuk alasan yang tidak terkait dengan jumlah ruang kosong yang tersisa. Tapi ini juga secara alami membebaskan ruang hard drive. Oleh karena itu, sekali lagi, koneksi nyata (tetapi salah) antara "lebih banyak ruang kosong" dan "komputer lebih cepat" dapat dibuat.
Pertimbangkan: Jika Anda memiliki mesin yang berjalan lambat karena banyak perangkat lunak yang diinstal, dll., Dan Anda mengkloning, tepatnya, hard drive Anda ke hard drive yang lebih besar kemudian memperluas partisi Anda untuk mendapatkan lebih banyak ruang bebas, mesin tidak akan secara ajaib mempercepat naik. Perangkat lunak yang sama memuat, file yang sama masih terfragmentasi dengan cara yang sama, pengindeks pencarian yang sama masih berjalan, tidak ada perubahan meskipun memiliki lebih banyak ruang kosong.
Apakah itu ada hubungannya dengan mencari ruang memori tempat menyimpan sesuatu?
Tidak. Ada dua hal yang sangat penting yang perlu diperhatikan di sini:
Hard drive Anda tidak mencari untuk menemukan tempat untuk meletakkan sesuatu. Hard drive Anda bodoh. Tidak apa. Ini adalah blok besar penyimpanan yang dialamatkan yang secara membabi buta menempatkan hal-hal di mana OS Anda memberitahu dan membaca apa pun yang diminta. Drive modern memiliki mekanisme caching dan buffering canggih yang dirancang untuk memprediksi apa yang OS akan minta berdasarkan pengalaman yang kami peroleh dari waktu ke waktu (beberapa drive bahkan mengetahui sistem file yang ada pada mereka), tetapi pada dasarnya, pikirkan drive Anda hanya sebagai bata besar penyimpanan dengan fitur kinerja bonus sesekali.
Sistem operasi Anda juga tidak mencari tempat untuk meletakkan barang. Tidak ada "pencarian". Banyak upaya telah dilakukan untuk menyelesaikan masalah ini, karena sangat penting untuk kinerja sistem file. Cara data sebenarnya diatur pada drive Anda ditentukan oleh sistem file Anda. Misalnya, FAT32 (DOS lama dan PC Windows), NTFS (nantinya Windows), HFS + (Mac), ext4 (beberapa Linux), dan banyak lainnya. Bahkan konsep "file" dan "direktori" hanyalah produk dari sistem file biasa - hard drive tidak tahu tentang binatang misterius yang disebut "file". Detail berada di luar cakupan jawaban ini. Tetapi pada dasarnya, semua sistem file umum memiliki cara pelacakan di mana ruang yang tersedia pada drive sehingga pencarian ruang kosong, dalam keadaan normal (yaitu sistem file dalam kesehatan yang baik), tidak perlu. Contoh:
NTFS memiliki tabel file master , yang mencakup file khusus $Bitmap
, dll., Dan banyak data meta yang menggambarkan drive. Pada dasarnya ia melacak di mana blok gratis berikutnya, sehingga file baru dapat ditulis langsung ke blok gratis tanpa harus memindai drive setiap saat.
Contoh lain, ext4 memiliki apa yang disebut "pengalokasi bitmap" , sebuah perbaikan dari ext2 dan ext3 yang pada dasarnya membantu secara langsung menentukan di mana blok bebas alih-alih memindai daftar blok gratis. Ext4 juga mendukung "alokasi tertunda", yaitu, buffering data dalam RAM oleh OS sebelum menuliskannya ke drive untuk membuat keputusan yang lebih baik tentang di mana meletakkannya untuk mengurangi fragmentasi.
Banyak contoh lainnya.
atau dengan memindahkan barang-barang untuk membuat ruang yang cukup panjang untuk menyimpan sesuatu?
Tidak. Ini tidak terjadi, setidaknya tidak dengan sistem file apa pun yang saya ketahui. File akhirnya terfragmentasi.
Proses "memindahkan barang-barang untuk membuat ruang berdampingan yang cukup lama untuk menyelamatkan sesuatu" disebut defragmenting . Ini tidak terjadi ketika file ditulis. Ini terjadi ketika Anda menjalankan defragmenter disk Anda. Pada Windows yang lebih baru, setidaknya, ini terjadi secara otomatis pada jadwal, tetapi tidak pernah dipicu dengan menulis file.
Mampu menghindari hal-hal seperti ini adalah kunci untuk kinerja sistem file, dan itulah sebabnya fragmentasi terjadi dan mengapa defragmentasi ada sebagai langkah terpisah.
Berapa banyak ruang kosong pada hard disk yang harus saya tinggalkan gratis?
Ini adalah pertanyaan sulit untuk dijawab, dan jawaban ini sudah berubah menjadi sebuah buku kecil.
Aturan praktis:
Untuk semua jenis drive:
- Yang terpenting, sisakan ruang kosong yang cukup agar Anda dapat menggunakan komputer secara efektif . Jika Anda kehabisan ruang untuk bekerja, Anda akan menginginkan drive yang lebih besar.
- Banyak alat defragmentasi disk memerlukan jumlah ruang kosong minimum (saya pikir yang ada di Windows memerlukan 15% kasus terburuk) untuk bekerja. Mereka menggunakan ruang kosong ini untuk sementara waktu menyimpan file yang terfragmentasi ketika hal-hal lain disusun ulang.
- Sisakan ruang untuk fungsi OS lainnya. Misalnya, jika mesin Anda tidak memiliki banyak RAM fisik, dan Anda memiliki memori virtual diaktifkan dengan file halaman berukuran dinamis, Anda akan ingin meninggalkan ruang yang cukup untuk ukuran maksimum file halaman. Atau jika Anda memiliki laptop yang dimasukkan ke mode hibernasi, Anda akan memerlukan ruang kosong yang cukup untuk file status hibernasi. Hal-hal seperti itu.
Khusus SSD:
- Untuk keandalan optimal (dan pada tingkat yang lebih rendah, kinerja) SSD memerlukan ruang kosong, yang, tanpa terlalu banyak merinci, mereka gunakan untuk menyebarkan data di sekitar drive untuk menghindari terus-menerus menulis ke tempat yang sama (yang membuatnya usang). Konsep meninggalkan ruang kosong ini disebut penyediaan berlebihan . Ini penting, tetapi di banyak SSD, ruang wajib yang disediakan lebih banyak sudah ada . Artinya, drive sering memiliki beberapa lusin GB lebih banyak daripada yang mereka laporkan ke OS. Drive kelas bawah sering mengharuskan Anda untuk secara manual meninggalkan ruang yang tidak dipartisi , tetapi untuk drive dengan OP wajib, Anda tidak perlu meninggalkan ruang kosong apa pun . Hal penting yang perlu diperhatikan di sini adalah ituruang yang terlalu banyak hanya diambil dari ruang yang tidak dipartisi . Jadi, jika partisi Anda mengambil seluruh drive Anda dan Anda meninggalkan beberapa ruang kosong di atasnya, itu tidak selalu masuk hitungan. Sering kali, pemberian secara manual mengharuskan Anda untuk mengecilkan partisi Anda menjadi lebih kecil dari ukuran drive. Periksa manual pengguna SSD Anda untuk detailnya. TRIM dan pengumpulan sampah dan semacamnya juga memiliki dampak tetapi itu berada di luar cakupan jawaban ini.
Secara pribadi saya biasanya mengambil drive yang lebih besar ketika saya memiliki sekitar 20-25% ruang kosong yang tersisa. Ini tidak terkait dengan kinerja, hanya saja ketika saya sampai pada titik itu, saya berharap bahwa saya mungkin akan kehabisan ruang untuk data segera, dan sudah waktunya untuk mendapatkan drive yang lebih besar.
Lebih penting daripada menonton ruang kosong adalah memastikan defragmentasi terjadwal diaktifkan jika sesuai (bukan pada SSD), sehingga Anda tidak pernah sampai pada titik di mana defragmentasi menjadi cukup buruk untuk mempengaruhi Anda. Yang sama pentingnya adalah menghindari tweak yang salah arah dan membiarkan OS Anda melakukan tugasnya, mis. Jangan nonaktifkan prefetcher Windows ( kecuali untuk SSD ), dll.
Ada satu hal lagi yang perlu disebutkan. Salah satu jawaban lain di sini menyebutkan bahwa mode setengah dupleks SATA mencegah membaca dan menulis pada saat yang bersamaan. Meskipun benar, ini sangat disederhanakan dan sebagian besar tidak terkait dengan masalah kinerja yang dibahas di sini. Artinya, secara sederhana, adalah bahwa data tidak dapat ditransfer ke dua arah pada kabel secara bersamaan. Namun, SATA memiliki spesifikasi yang cukup kompleks yang melibatkan ukuran blok maksimum yang sangat kecil (sekitar 8 kB per blok pada kabel, saya pikir), membaca dan menulis antrian operasi, dll., Dan tidak menghalangi penulisan ke buffer yang terjadi saat membaca sedang berlangsung, disisipkan operasi, dll.
Setiap pemblokiran yang terjadi akan disebabkan oleh persaingan untuk sumber daya fisik, biasanya dimitigasi oleh banyak cache. Mode duplex SATA hampir seluruhnya tidak relevan di sini.
† "Melambat" adalah istilah yang luas. Di sini saya menggunakannya untuk merujuk pada hal-hal yang terikat I / O (misalnya jika komputer Anda duduk di sana angka-angka berderak, isi hard drive tidak berdampak), atau terikat dengan CPU dan bersaing dengan hal-hal terkait terkait yang memiliki penggunaan CPU yang tinggi (mis. perangkat lunak antivirus memindai banyak file).
†† SSD yang dipengaruhi oleh fragmentasi dalam akses sekuensial kecepatan umumnya lebih cepat daripada akses acak, meskipun SSD tidak menghadapi keterbatasan yang sama sebagai perangkat mekanik (bahkan kemudian, kurangnya fragmentasi tidak menjamin akses sekuensial, karena memakai leveling, dll , seperti yang dicatat James Snell dalam komentar). Namun, dalam hampir setiap skenario penggunaan umum, ini bukan masalah. Perbedaan kinerja karena fragmentasi pada SSD biasanya dapat diabaikan untuk hal-hal seperti memuat aplikasi, mem-boot komputer, dll.
††† Dengan asumsi sistem file waras yang tidak memecah- mecah file dengan sengaja.