TRIM Etkinleştirici nasıl çalışır?


8

Kısa süre önce üçüncü bir parça (OCZ) SSD aldım ve Trim Etkinleştirici'yi TRIM'i etkinleştirmek için kullandım . Bazı yazılım güncellemelerinin TRIM'in devre dışı bırakılmasına neden olabileceğini fark ettim ve bu nedenle TRIM Etkinleştirici'nin nasıl çalıştığını merak ettim.

  • Bazı varsayılan KEXT'i TRIM'i desteklemek için özel bir KEXT ile değiştiriyor mu yoksa basitçe bazı PLIST ayarlarını değiştiriyor mu?
  • Her iki durumda da, kilitlendiğinde TRIM'in etkin kalmasını sağlayabilecek bir dosya var mı (herhangi bir olumsuz sonuç olmadan)?

Yanıtlar:


9

Trim Etkinleştirici aşağıdaki Kext Dosyasını yamalar

/System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage

SSD'nin 3. taraf mı yoksa Apple Markalı SSD mi olduğunu kontrol eder:

IOAHCI hex / ascii görünümü

ayrıca dosyadaki tüm 'Apple' oluşumlarını arayarak ve onaltılı düzenleyicide ya da terminalde yama ile manuel olarak etkinleştirebilirsiniz:

##1. Backup old file
    $sudo cp /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage
/System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage.original

##2. Patch the file to enable TRIM support
    $sudo perl -pi -e 's|(\x52\x6F\x74\x61\x74\x69\x6F\x6E\x61\x6C\x00{1,20})[^\x00]{9}(\x00{1,20}\x51)|$1\x00\x00\x00\x00\x00\x00\x00\x00\x00$2|sg' /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage

##3. Clear the system kernel extension cache

   $sudo kextcache -system-prelinked-kernel

   $sudo kextcache -system-caches

1
Bu şeyleri nasıl buluyorsun ?! TRIM Etkinleştirici'yi IOAHCIBlockStorage dosyamı "yamalamak" için çalıştırıp kilitlerseniz (yönetici ayrıcalıklarıyla), herhangi bir olumsuz etkim olur mu? Elbette yeni PCIe SSD'leri (MacBook'umun bile sahip olmadığı) destekleyemezdim, ancak gelecekteki güncellemelerin yamayı tersine çevirmesini önler miydim?
Alexander - Monica'yı eski durumuna döndür

en iyi tahminim: dosyayı düzenlemeden kilitleseniz bile ... güncelleyici dosyayı tamamen yeni bir dosyayla değiştirir. Tüm klasörden root için yazma iznini kaldırmanız gerekirdi. Bu özel durumda yükleyicinin klasöre yazamadığından başarısız olacağını varsayıyorum. Bence bu zahmete değmez. Güncellemeden sonra Trim Etkinleştirici'yi başlatın ve yamayı tekrar uygulayın.
Chrisii

@Chrisii Bunun Yosemite'de çalışıp çalışmadığını biliyor musunuz? Kext imzasını değiştiriyor mu?
thepen

@thepen Henüz test etmedim ama dosyayı değiştirmenin kext imzasını değiştireceğini kesin olarak söyleyebilirim ve bu nedenle bile çalışmasını sağlamak için ilk önce kext imzalama doğrulamasını devre dışı bırakmanız gerekecek (Daha fazla bilgi burada bulabilirsiniz cindori .org / trim-
enableler

2

Bununla ilgili bulabildiğim tek bilgi SSS / blog yazısı girişinden

C: Trim Etkinleştirici, uygulama kapatıldığında veya kaldırıldığında bile arka planda çalışan yerel bir OSX Trim sürücüsünü yayar. Bu yama sistem güncellemelerinde sıfırlanır, bu nedenle uygulamayı korumak iyi bir fikir olabilir.


Apple, örneğin yeni ssd sürücülerini desteklemek için söz konusu çekirdek uzantılarını güncellemeye karar verdiğinde yol genellikle güncellemelerde sıfırlanır (WWDC'de duyurulan yeni ppcie ssds'leri düşünme).
Chrisii

2

OCZ SSD'lerde, blokları silme ihtiyacını geciktiren, TRIM desteğine olan ihtiyacı azaltan ancak kaldırmayan, ön plan çöp toplama özelliğine sahip bir Sandforce denetleyicisi kullanılır. Trim, çöp toplama için bir yardımcı olarak kabul edilebilir.

Trim VS Çöp Toplama

Kısa açıklama için flash bellek, verilerin yazılabileceği sayfa grupları halinde düzenlenmiştir. Bir sayfa yazıldıktan sonra silinene kadar yeniden yazılamaz. Ancak bir sayfa yalnızca blok adı verilen 128 sayfalık bir grup içinde silinebilir. Verilerin yazılmasının karmaşıklığı, daha önce yazılan verilerin yerini alan rastgele yazma durumlarında gerçekten artmaya başlar. Rastgele yazma işlemleri, yeni verileri daha önce silinmiş sayfalara yerleştirir ve “geçersiz veri yamaları” ile geçerli bir veri bloğu oluşturur. Bu yamalara yeni veriler yazmak için, tüm 128 sayfanın tamamı silinmelidir. Ancak önce geçerli verilere sahip tüm çevreleyen sayfalar okunmalı ve daha sonra boş sayfalara yeniden yazılmalıdır. Yeni silinen boş sayfalar bloğu yeni verileri kaydetmeye hazırdır.

[…] Tüm NAND Flash tabanlı SSD'ler GC kullanır. Bazıları ön plan GC'yi, bazıları arka plan veya boşta zaman GC'yi kullanır. Aralarındaki fark http://blog.lsi.com/dont-let-ssds-throw-away-your-gold/ adresinde yer alıyor . Basit bir ifadeyle, arka plan çöp toplama yazma amplifikasyonunu (WA) artıracak ve SSD'yi daha erken yıpranacaktır. Ön plan GC'ye ulaşmak daha zor ve bugün sadece SandForce denetleyicisinin bunu yapabileceğine inanıyorum

[…] TRIM, ne tür çöp toplama kullanıldığına bakılmaksızın tüm SSD'ler için faydalıdır. TRIM'in nasıl ortaya çıktığı ve blogumda neden gerekli olduğu hakkında konuşuyorum http://blog.lsi.com/did-you-know-hdds-do-not-have-a-del… . TRIM komutu, çöp toplama sırasında hangi veri sayfalarının yok sayılabileceğini belirlemek için OS tarafından SSD'ye gönderilir. SSD, işletim sistemi yeni dosyaları depolamak için aynı sektörleri kullanana kadar hangi dosyaların silindiğini söyleyemez, ancak o zamana kadar SSD, geçersiz olan ancak SS tarafından bilinen çöp toplama verileriyle döngüleri boşa harcamıştır.

HDD'lerin Sil komutu olmadığını biliyor muydunuz? Bu yüzden SSD'lerin TRIM'e ihtiyacı var

SSD TRIM'inizi tutma Birkaç yıl önce depolama endüstrisi bir araya gelerek TRIM adında yeni bir SATA komutu oluşturarak işletim sistemi ve SSD arasında bir çözüm geliştirdi. SSD'yi bazı insanların inandığı gibi hemen verileri silmeye zorlayan bir komut değildir. Aslında TRIM komutu, OS'den SSD'de daha önce kullanılan adreslerin artık geçerli veriye sahip olmadığına dair bir mesaj olarak düşünülebilir. SSD bu adresleri alır ve bu konumları geçersiz olarak işaretlemek için flash belleğinin kendi dahili haritasını günceller. Bu bilgilerle SSD, GC işlemi sırasında bu geçersiz verileri artık taşımaz ve geçersiz verileri yeni flash sayfalara yeniden yazmak için harcanan zamanı ortadan kaldırır. Ayrıca flaştaki yazma döngüsü sayısını azaltarak SSD'lerin dayanıklılığını artırır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.