أوبونتو لا تريم سواقات حسب افتراض لماذا لا وكيفية تمكينها نفسك
يريد Ubuntu تمكين TRIM for SSDs بشكل افتراضي في Ubuntu 14.04. بعبارة أخرى ، لا يستخدم Ubuntu بالفعل TRIM ، لذا فإن SSD الخاص بك يتباطأ بمرور الوقت. ولكن لماذا لا يستخدم Ubuntu بالفعل TRIM?
من المحتمل أن تكون هذه الأخبار مفاجئة لكثير من الناس ، الذين افترضوا أن أوبونتو وغيرها من توزيعات لينكس كانت تستخدم بالفعل TRIM. تمنع TRIM محركات SSD من التباطؤ مع مرور الوقت وهي جزء ضروري من صيانة SSD.
لماذا تعتبر TRIM مهمة
لقد قمنا بتغطية سبب أهمية نظام TRIM من قبل. عندما تقوم بحذف ملف على قرص صلب قديم ، فإن الكمبيوتر يقوم ببساطة بتحديد هذا الملف كمحذف. تلتصق بيانات الملف على القرص الصلب - ولهذا السبب يمكن استعادة الملفات المحذوفة. سيقوم الكمبيوتر في نهاية المطاف بالكتابة فوق الملفات المحذوفة عند الكتابة فوق قطاعاتها بالبيانات الجديدة.
تعمل محركات الأقراص ذات الحالة الصلبة (SSD) بشكل مختلف. عندما تكتب ملفًا إلى SSD ، يجب على الكمبيوتر أولاً مسح أي بيانات في القطاعات التي يكتب البيانات إليها. لا يمكن فقط "استبدال" القطاعات في عملية واحدة - يجب أولاً مسحها ، ثم الكتابة إلى القطاعات الفارغة.
هذا يعني أن SSD سيتباطأ مع مرور الوقت. الكتابة إلى قطاعات SSD ستكون سريعة في المرة الأولى. بعد حذف بعض الملفات ومحاولة الكتابة إليها مرة أخرى ، سيستغرق ذلك وقتًا أطول. هذا جزء كبير من السبب الذي أدى إلى تباطؤ سرعة جهاز Nexus 7 الأصلي من Google كثيرًا بمرور الوقت. قامت Google بإصلاح هذا عن طريق تنفيذ TRIM في Android 4.3. (يستخدم Android أيضًا نظام Linux kernel).
مع تمكين TRIM ، يخبر نظام التشغيل SSD في كل مرة يقوم فيها بحذف ملف. يمكن لمحرك الأقراص بعد ذلك مسح القطاعات التي تحتوي على محتويات الملف ، لذا ستكون الكتابة إلى القطاعات سريعة في المستقبل.
وبعبارة أخرى ، إذا لم تستخدم TRIM ، فإن محرك SSD الخاص بك سيتباطأ بمرور الوقت. ولهذا السبب تستخدم أنظمة التشغيل الحديثة ، بما في ذلك نظام التشغيل Windows 7+ ، و Mac OS X 10.6.8+ ، و Android 4.3+ TRIM. تم تنفيذ TRIM في Linux في ديسمبر 2008 ، ولكن Ubuntu لا يستخدمه بشكل افتراضي.
لماذا لا أوبونتو trim افتراضي?
السبب الحقيقي هو أن Ubuntu لا تقوم TRIM SSDs بشكل افتراضي لأن تطبيق Linux kernel لـ TRIM بطيء ويؤدي إلى أداء ضعيف في الاستخدام العادي.
في نظامي التشغيل Windows 7 و 8 ، يرسل Windows أمر TRIM في كل مرة يقوم فيها بحذف ملف ، ويخبر محرك الأقراص بحذف بتات الملف على الفور. يدعم Linux هذا عندما يتم تثبيت أنظمة الملفات مع خيار "تجاهل". ومع ذلك ، فإن Ubuntu - والتوزيعات الأخرى - لا تفعل ذلك بشكل افتراضي لأسباب تتعلق بالأداء.
يحتوي الويكي الخاص بـ OpenSUSE على بعض المعلومات التفصيلية من مطور يتعرف على نواة لينكس أكثر من ذي قبل. إنه مؤرخ قليلاً ، لكن من المحتمل أن يكون صحيحاً عندما يتعلق الأمر بالأداء:
"لم يتم تحسين تنفيذ kernel للقطع الحقيقي في 11.2 و 11.3 و 11.4. المواصفات. يدعو لتقليم دعم قائمة متجهة من نطاقات التقليم ، ولكن اعتبارًا من kernel 3.0 ، لا يتم استحضار تقليم النواة إلا من خلال نطاق واحد غير مستقطع / تقليم ، ومع محركات الأقراص الصلبة الحالية في منتصف عام 2011 ، فقد ثبت أن هذا يؤدي إلى تدهور الأداء بدلاً من زيادة في الأداء. هناك أسباب قليلة لاستخدام النواة في الوقت الحقيقي تجاهل الدعم مع ما قبل 3.1 حبات. من غير المعروف متى سيتم تحسين وظيفة إزالة النواة للعمل بشكل ناجح مع محركات SSD للجيل الحالي ". [المصدر]
بعبارة أخرى ، تعالج نواة لينكس أوامر TRIM الآنية هذه بطريقة بطيئة وغير محمولة. إن تمكين TRIM يشبه طريقة عمل Windows - أي باستخدام خيار "تجاهل" - يؤدي إلى أن يصبح النظام أبطأ بالفعل مما لو لم يتم استخدام TRIM على الإطلاق. لا تمكّن Ubuntu وتوزيعات Linux الأخرى "تجاهل" بشكل افتراضي لأنظمة الملفات لديك ، ولا يجب عليك أيضًا.
هناك طريقة أخرى
نظرًا لأن عملية TRIM في الوقت الفعلي "تجاهل" لـ Linux kernel لا تعمل بشكل جيد ، فإن معظم توزيعات Linux - بما في ذلك Ubuntu - لا تستخدم TRIM تلقائيًا. كما أن Android لم يستخدم TRIM حتى Android 4.3.
ولكن هناك طريقة أخرى لاستخدام TRIM. بدلاً من مجرد إصدار أمر TRIM في كل مرة يتم فيها حذف ملف ، يمكن استخدام ميزة FITRIM. يحدث هذا عن طريق الأمر fstrim. وبشكل أساسي ، يقوم الأمر fstrim بتحليل نظام الملفات وإعلام محرك الأقراص الذي لم تعد هناك حاجة إلى الكتل ، لذلك يمكن لمحرك الأقراص التخلص منها. يؤدي هذا إلى تحويل TRIM من عملية في الوقت الفعلي إلى مهمة مجدولة. بعبارة أخرى ، يمكن لـ Fstrim إجراء TRIM كعمل كرون. لا يوجد سبب لعدم القيام بذلك. لن تبطئ أي شيء ؛ إنها مهمة أخرى للتنظيف يجب على النظام القيام بها وفقًا لجدول زمني.
في الواقع ، هذه هي الطريقة التي اتخذتها Google مع Android 4.3. يدير Android مهمة fstrim من حين لآخر لتتبع نظام الملفات ، مع إصلاح المشكلة التي أدت إلى تباطؤ جميع أجهزة Nexus 7 الأصلية.
كما تبحث Ubuntu أيضًا في تمكين TRIM تلقائيًا من خلال تشغيل النظام بشكل منتظم. من المؤمل أن يكون هذا جزءًا من Ubuntu 14.04 حتى لا يضطر مستخدمو Ubuntu إلى التعامل مع تدهور أداء SSD أو تشغيل fstrim بمفردهم.
كيفية تمكين تريم
لا نوصي بتركيب أنظمة الملفات الخاصة بك مع عملية "تجاهل" ، لأن ذلك سيؤدي على الأرجح إلى أداء أبطأ في الاستخدام العادي. ومع ذلك ، يمكنك استخدام TRIM بنفسك من خلال تشغيل الأمر fstrim من وقت لآخر أو إنشاء cronjob الخاص بك الذي يدير fstrim على جدول زمني.
لتتبع SSD الخاص بك على Ubuntu ، قم ببساطة بفتح جهاز طرفي وتشغيل الأمر التالي:
sudo fstrim -v /
يمكنك تشغيل الأمر أعلاه من وقت لآخر لمنع تدهور الأداء على محركات الأقراص ذات الحالة الثابتة. يعتمد عدد مرات تشغيله على عدد مرات حذف الملفات من SSD. سترى خطأً إذا حاولت تشغيل الأمر باستخدام محرك أقراص لا يدعم TRIM.
إذا كنت ترغب في تشغيل TRIM بانتظام ، يمكنك ببساطة إنشاء cronjob الذي يدير الأمر fstrim لك. إليك كيفية إنشاء وظيفة cirebones cron ستؤدي ذلك تلقائيًا.
أولاً ، قم بتشغيل الأمر التالي لفتح محرر نصوص nano بأذونات الجذر:
sudo nano /etc/cron.daily/fstrim
اكتب التعليمة البرمجية التالية في الملف:
#! / بن / ش
فستريم /
احفظ الملف عن طريق الضغط على Ctrl + O ثم اضغط على Enter للتأكيد. اضغط على Ctrl + X لإغلاق nano بعد حفظ الملف.
أخيرًا ، قم بتشغيل الأمر التالي لجعل البرنامج النصي قابل للتنفيذ:
sudo chmod + x /etc/cron.daily/fstrim
سيقوم Ubuntu الآن بتشغيل Fstrim وفقًا لجدول زمني ، تمامًا كما يفعل مهام صيانة النظام الأخرى.
لاحظ أن TRIM مدعوم فقط على أنظمة الملفات الحديثة ، لذا ستحتاج إلى شيء مثل ext4 وليس ext3 أو ext2. إذا كنت لا تعرف نظام الملفات الذي تستخدمه ، فلا تقلق - يتم تحديد ext4 بشكل افتراضي.
وينطبق الكثير من هذه النصائح أيضًا على توزيعات لينكس الأخرى. في حين أن لينكس قام بتطبيق دعم TRIM في النواة منذ فترة طويلة ، يبدو أن دعم TRIM لم يتم تمكينه بشكل افتراضي للمستخدمين العاديين في توزيعات لينكس.
رصيد الصورة: Mace Ojala على Flickr (اقتصاص)