صباح الخير.
بداية الكتابة يوم الجمعة التاسع من فبراير عام 2007 -و أكمله اليوم 24 فبراير و أنا أعاني من إنفلونزا حادة.. و ربنا يستر ومتتعدوش :p
الموضوع : إزادة سرعة لينوكس و كيفية عمل الذاكرة عليه .
مقدمة إختيارية :
الموضوع تحت رخصة : ألطشّ ولا تقلّقش.
المستوى : للجميع في الشقّ الأول و للمحترفين -فقط- في الشقّ الثاني حتى لا تبكي لاحقاً!! .
لماذا هذه الرخصة؟ لأني في الأساس لا أبحث عن ذكر أسمي في الموضوع، و لكن أبحث عن إنتشار الموضوع بين أكبر كميّة من الناس، هذا يعني بأنك لو قمت بتغيير الحقوق و وضعت أسمك بدلاً من أسمي فلا يوجد أي مشكلة، لأني لم أخترع هذا الموضوع أو أخترعت أدواته ولكن تعلّمته بعد عدّة تجارب و أيضاً قرأت عنه لذا فلا توجد أي حقوق اللهم إلا حق واحد.. أن لا تنسى أني علّمتك حرفاً و عليك أن تكون لي عبّداً :D
مقدمة إجبارية :
لينوكس هو أفضل نظام في العالم يعطيك تحكماً واسعاً في كل شيء فيه أيا كان هو، و ذلك يعني بأنك يمكنك التحكم في ذاكرته و هو الشيء الذي أصبح هاماً هذه الأيام لوجود تطبيقات تحتاج لجزء كبير من الذاكرة، على سبيل المثال لا الحصر برامج الملتيميديا كمثال، أو برامج البحث، أو البرامج التي تحتاج تطبيقات الجافا أو غيرها، و لذا فإن معرفة كيفية التحكم في الذاكرة بات أمراً هاماً، و لكن الذاكرة ليست كل شيء، فالقرص الصلب أيضاً يشارك و بشكل كبير في زيادة سرعة الجهاز طبعاً هذا بخلاف سرعة المعالج و عدد المعالجات بجهازك إلخ.. لذا فالأمر متشعّب و لكن ما سأتحدث عنه هو ما يمكنك التعامل معه مثل الذاكرة و القرص الصلب و التطبيقات و طبعاً و قبل أي شيء النواة ! .
القرص الصلب :
هنا لن أتحدث عن كيفية تزويد سرعة القرص الصلب! لأنه لا يمكن التحكم في خصائصه الفيزيائية و لكن ما سأتحدث عنه هو للتوضيح عن الفروق التي قد تكون موجودة بين الأقراص الصلبة القديمة و الحديثة، لذا فلا تتوقع أن تكون نتيجة قرص صلب أنشأ عام 2007 كما هي نتيجة 2002.
أدخل إلى "الكونسول" أو أيا كان ما تستخدمه و قم بتعطيل كل الخدمات ليكون القرص في حالة IDLE قدر المستطاع :
أستبدل /dev/hda بالقرص الصلب لديك، إذا كان قرصك الصلب من نوع "ساتا" أي يستخدم " libata" فأستبدله بالأمر :
هذا الأمر لا يكتب على القرص الصلب أي شيء بل يقرأ فقط لذا لا داعي للخوف هنا لأني أعرف ذلك الشعور الذي يوسوس لك الأن. بعد تنفيذ الأمر لدي كانت النتيجة كالتالي :
[email protected]:~# hdparm -tT /dev/sda
على قرص صلب آخر كانت النتيجة :
طبعا هذا يوضح الإختلافات التي قد تراها من حاسب لحاسب، على أي حال فإن سرعة القرص الصلب لن تشعر بها كثيراً لأن العمليات التي تحدث أسرع مما تتخيل و قد تلاحظها إن كنت تستخدم قرص صلب منذ عام 99 مثلاً مقارنة بأخر أنشأ 2007.
هل هذا يعني أنه لا يمكن التحكم في خصائص القرص الصلب؟
لا..
بل نعم و لكني أكذب عليك حتى لا تقوم بتدمير قرّصك الصلب لأن التعديل على خصائص القرص الصلب حتماً ستؤدي إلى كارثة لا يمكن تجّنبها! نعم فالأمر معقد و ليس بالبسيط و قد يتلف القرص الصلب كاملاً، عن نفسي قمت بتجربة التغيير على قرص قديم لا يهمني خسارته و لم يحدث أي ضرر لي و لكن هذا لأني كنت حريص جداً جداً و بالرغم من ذلك بدأت ألاحظ بعد إنتهاء التجارب بأنه قد لا يعمل أحياناً!، أؤمن بأن أفضل الخصائص بالنسبة للقرص الصلب تأتي في الإعدادات الإفتراضية لذا فالمغامرة هنا ليست بالشيء الحسن، و أقتبس هنا مقولة من رجل عسكري كان دوماً يقول " قمّة الشجاعة هي أن لا تأخذ القرار الشجاع!".
هل هذا كل شيء حول القرص الصلب؟
نعم.. و لا !
نعم لأنه لا يوجد أي شيء ستفعله الأن مباشرة مع القرص الصلب.
لا لأن هناك بعض الخصائص التي يجب أن تكون بالنواة حتى تستطيع التعديل على القرص و لذا فسيتم تأجيل الجزئية الخاصة بالـ"DMA" إلى جزئية التعديل على النَواة .
النواة :
هذا الجزء هو الأساس لكل شيء، فالنواة هي لينوكس! نعم فكل الأشياء الأخرى التي تراها الآن أمام توزيعتك ليست سوى تطبيقات تحت رخص مختلفة أما لينوكس فهو النواة.. و النواة فقط!، نواة لينوكس سهلة التحكم جداً خاصة و أن كل شيء مرتب فيها لن تضلّ طريقك بداخلها حتى لو كانت المرّة الأولى لك.
1- إختيار نوع المعالج :
إختيار نوع المعالج خطوة مهمة جداً جداً و تؤثر بشكل كبير في الكفائة و السرعة فمثلاً جهاز بنتيوم 4 و أخترت نوع المعالج بنتيوم 2 فسيؤدي طبعاً إلى بطئ شديد و ستتعامل النواة معه على أنه بنتيوم 2! على كلّ المفترض هنا أنك تعرف نوع جهازك وإن كنت لا تعرفه فأنصحك بإغلاق الصفحة التي تقرأ منها هذا الموضوع لأنها لن تفيدك و أذهب لإستخدام البلاي ستيشن أو أنظمة الويندوز أفضل لك!.
إختيار نوع المعالج يكون عن طريق التوجه لملف النواة لديك و من ثم إختيار الواجهة التي تفضلها، عن نفسي مثلاً أستخدم
ومن ثم أذهب إلى
ثم إلى
و من ثم قم بإختيار معالجك أو ما هو أقرب له فمثلاً تجد
هذا في حالة كان معالجك بنتيوم 4 أو زيون، و هكذا ستجد معالجك فقم بإختياره.
2- تحديد المعالجات :
الحقيقة هنا لست بصدد التحدث عن عدد المعالجات و لكن حتى تعمل كل المعالجات في النواة فعليك أن تقوم بتفعيل هذا الخيار بالنواة و طبعاً الفارق كبير جدا جدا!، فمثلاً هناك أجهزة ذات معالجين أو أكثر و التي تعرف بإسم "HT" أو حتى "dual-CPU أو dual-core " لن نقارنها مثلاً ببنتيوم 3!. إذا كان جهازك ذو معالجين أو أكثر فعليك بإختيار هذا الخيار
و هذا الخيار ستجده في بداية الصّفحة بالأعلى قبل أي شيء!.
3- إختيار عدد المعالجات :
بدأت تشعر بأني أتحدث عن النواة و أشرحها! لا و لكن هذه الخطوات تؤثر حتماَ في السرعة لذا فلا تتعجل الحكم، هذا الخيار " تحديد عدد المعالجات" ليس ضرورياً لك إن كان جهازك ذو معالج واحد، و عدد المعالجات التي قد يستطيع لينوكس تشغيلها هي 255 حتى الأن!! طبعاً أشكّ في وجود هذا الرقم على أي جهاز ممن يقرأ هذا المقال :D . عموماً يجب عليك تحدد أكبر عدد للمعالجات التي لديك من خلال القيمة :
ثم ضع عدد المعالجات، هذا الخيار يقلل من إستهلاك الذاكرة طبعاً هذا في حالة وضعك لعدد المعالجات الصحيح .
4- الرام
قم بالذهاب إلى الأسفل قليلاً حتى تجد
لاحظ أننا لازلنا في صفحة
إذا كان الرام لديك أكبر من 1 جيجا بايت فأختر 4G أما إذا كان أقلّ فأنصحك أن تختار
هذا لا يعني أنه لن يكون هناك رام! و لكن يعني أن الإستهلاك لن يكون أكثر من 1 جيجا .
ملحوظة هامة : الحديث هنا عن الفيزيكال رام و ليس عن الرام الوهمي" السواب" لذا فكن على حذر، و أقصد بالرام هنا هو الفيزيكال رام فقط .
هل أنتهينا من جزئية النواة؟
لا ليس بعد هناك الجزء الهام ألا وهو تفعيل الدي إم إا
DMA
طبعاً غالباً ما تفعّله النواة و لكن حديثي هنا عمّن يستخدم نواة أقل من 2.6 و قد لاحظت هذه المشكلة أثناء إستخدامي للنواة الخاصة بسلاكوير، طبعاً إذا كنت تعمل على نواة 2.6 أو ما هو أحدث من تاريخ كتابة هذه الورقة فلا توجد لديك هذه المشكلة، أما إذا كنت مصمّما على العمل بنواة 2.4 فحتما ستواجه هذه المشكلة، الحل كالتالي :
بعد تنفيذ هذا الأمر سيعمل و ستشعر بفرق كبير في السرعة.
ملحوظة الأقراص الصلبة من نوع "ساتا" تأتي عادة مفعّلة الأم دي أا و لكن طبعاً يجب عليك إذا كنت تواجه أي مشكلة فتأكد من
إعدادات النواة .
هذا هو الجزءالخاص بالنّواة من ناحية التعديلات عليها مباشرة. الأن سأدخل في شرح سريع لكيفية عمل الذاكرة في لينوكس و الجزئية الأهم هنا و هي السواب. إذا كنت مشوشاً أو لا تشعر بالتركيز فلا أنصحك بإكمال القراءة فالأمر يحتاج إلى تركيز إلى حد ما.و لاحظ أننا لم نترك جزئية النواة بعد .
الذاكرة و القراءة :-
معرفة حجم الذاكرة المستهلكة في لينوكس أسهل مما يمكن فهناك أدوات تسهل عليك القراءة، على سبيل المثال فالأمر
أسهلها و أيضاً الأمر
عن نفسي أستخدم الأمر
وهو يعني عرض الذاكرة بالميجابايت، الحاسوب الذي أعمل عليه الأن يوجد به واحد جيجا رام، و قمت بتشغيل البرامج التالية عليه :
جي إف تي بي-سوبر كارمبا-جيمب-كالكوليتر-فايرفوكس-كوبيتي-كي ورد-كي جي بي جي ، إضافة إلى تشغيل واجهة الكيدي و بعض الخدمات التي تعمل في الخلفية مثل الإنترنت و الخدمات الأخرى، قمت بتشغيل كل هذه الخدمات حتى يتسنى لي معرفة كم يستهلك لينوكس من الذاكرة و طبعاً للوهلة الأولى ستبصق على الحاسوب و تقول " ما هذه الحماقة؟" هذا بعد أن تستخدم الأمر :
فتجد أن الذاكرة الحرّة هي 19 ميجا فقط من أصل 1000؟ فهل هذا معقول؟.
المشكلة هي في عدم الإلمام بكيفية عمل الذاكرة و هذا ما يتعرض له أغلب الناس، و للأسف حتى المحترفين منهم! فالذاكرة لديهم هي ما يرون بجانبه كلمة حرّ" فري" و هذا خطأ شائع، و حتى تعرف لماذا هو خطأ فتابع معي...
الفرق بين البفر كاش و الكاش العادي صعب الفهم قليلاً، إلا أني سأذكر أهم فرق بينهم لأن الأمر ليس بتلك السهولة فحتى تفهم الفرق كاملاً بينهم عليك بالقراءة حول كيفية عمل كل منهم منفصلاً.
الكاش هو عبارة عن طريقة لحفظ الصفحات عن طريق النواة و هو لا يعمل إلا في حالة وجود ذاكرة حرّة تكفي له، أي أنه لا يعمل إذا كانت الذاكرة قد أستهلكت بالكامل، و فكرة الكاش هي لتسريع فتح الملفات على القرص الصلب، لأن عملية القراءة من الكاش تكون أسرع مئات المرات من القراءة من القرص الصلب و الفرق هنا بينه و بين البفر هو أن البفر لم يتم كتابته أي شيء لازال يعمل و رغم أن كلاهما مرتبط ببعضهم بعد نواة 2.4 إلا أن كل منهم يعتبر منفصل بشكل أو بآخر.
ماذا يعني ذلك؟
ذلك يعني أن ما تراه أنت مستهلكاَ من الكاش و البفر ليس بالشيء الذي يقلقك أو الذي يقلل من ذاكرتك بل على العكس يزيدها، وذلك يعني أن الذاكرة الحرّة لدي في المثال السابق هي :
703
حيث أن كل من البفر و الكاش لا يعتبروا إستهلاك للذاكرة أصلاً لإنها على كل غير مستخدمة أو لم يحتاج الحاسوب إليها بعد لذا فيجب إستخدامها و هذا ما يفعله أسلوب إستخدام الذاكرة في لينوكس.
السواب و 2.6 :
مشكلة السواب لم يكن لها وجود في أسلوب النواة القديم أما الآن فهي قد تعتبر مشكلة لمن لا يعرف ما يناسبه وما لا يناسبه على كل حال هي ليست مشكلة بعد قرائتك لهذا الموضوع .
عندما تستهلك الذاكرة باكامل و كما وضحت في السابق أن إستهلاكها لا يحدث بسرعة وبهذه السهولة و بأن المساحة الحرة هي كبيرة طالما أن البفر و الكاش مازالا مستخدمين. عندما تستهلك فتتبع النواة أسلوب ذكي لمحاولة خلق ذاكرة جديدة و هو بمحاولة مسح القليل من الكاش الذي شرحته بالأعلى لمحاولة خلق ذاكرة جديدة، هنا تقوم النواة بمسح الكاش القديم فقط أو الغير مستخدم منذ فترة كبيرة. و هنا تكمن المشكلة!
المشكلة هي في وضع قيمة كبيرة للسوابنيسس، و هي المسؤولة عن عملية إستبدال الصفحات التي تم عمل كاش لها بالعمليات التي في الذاكرة، بمعنى أوضح هذه القيمة تحدد عمل السواب و عمل الكاش، على كل حال ليست هذه القيمة وحدها التي ستجعل النواة تعمل بشكل جيّد إلا أنها من أهم القيم ، لتفهم ما الذي ستكون أنت في حاجة له عليك أن تقرر إذا ما كنت ستحتاج الذاكرة لتشغيل برامج كبيرة مثلاً أم أنت في حاجة لعمل كاش للصفح حتى تكون القراءة من القرص أسرع " كما شرحت بالأعلى ". هذه الإشكالية تعتمد عليك أنت، على أي حال القيمة التي وضعها مطوروا النواة كانت 60، إاذ كنت تستخدم رام أقل من
512
فأجعل القيمة لا تتعدى ال20، أما إذا كنت ستتخدم رام أكبر من ذلك فلتكن بين 40 و 60، قرأت منذ مدة أن بعض الناس يضع 100 مثلاً.. و آخرين يضعون 0! فإذن الأمر يتعلق بإحتياجاتك أنت.
هذه الإشكالية حتى الأن لا خيار ثابت لها.
لتحديد القيمة عليك وضعها هنا
كمثال أنا أضع القيمة الإفتراضية 60 إذن فسيكون الأمر
ثم عندما تجد أن كل شيء على مايرام فلتجعل هذا الخيار ثابتاً عن طريق إستخدام
أو ضع القيمة بملف الأداة.. كما تشاء .
إلى هنا و أكون قد أنتهيت من جزئية النواة و لننتقل إلى جزء آخر..
الخدمات :
الخدمات هي الأساس لكل شيء فكل ما سبق ذكره ما هو إلا 50% و الخدمات هي الشقّ الأكبر، على سبيل المثال يأتي مستخدم ليشكي و يقول : الخادم بطيء جداً من الساعة العاشرة للساعةالحادية عشر.
حينها سأضع يدي على عيني و سأحاول أن لا أرى كلامه، فالمستخدم يعرف جيداً أن في هذا الوقت مثلاً هناك عمليات نسخ إحتياطي تحدث، رغم ذلك فهو لا يريد أن يشعر ببطئ أبداً!، أو مثلاً يكون هناك تحديث لقواعد ملفات البحث لديه، المشكلة هي أن المستخدمين لا يهتموا سوى بالسرعة..لا يهم أي شيء آخر و لا التفاصيل حول عدد البرامج التي تعمل وخلافه..!
في أغلب توزيعات لينوكس بخلاف سلاك وير فإن هناك ملف لتشغيل الخدمات جميعها.. و هذا الملف هو
و هو مسؤول عن الخدمات و إيقافها وتشغيلها و في أي مرحلة ستعمل، توجد ستّة مراحل للعمل في أغلب التوزيعات.. فمثلاً المرحلة الثالثة تقوم بتشغيل الشبكة والبرامج الأساسية ولكن لا تقوم بتشغيل الواجهة الرسومية مثلا المرحلة الخامسة مثلاً، لذا فينبغي عليك أن تعرف ما الذي ستريد تشغيله أصلاً؟ على كل فإن تحديد البرامج التي يحتاجها جهازك ليست مسؤوليتي و من المستحيل تخمينها.. اللهم إلا أشياء بسيطة مثلاً الأباتشي و المايسكول. فكلاهما لا يوجد فائدة من إستخدامه طالما أنك لا تستخدم حاسوبك كخادم أو للتجارب، و مثلاً لا فائدة من تشغيل السوبر كارمبا.. طالما أن لا فائدة له سوى المزايا التجميلية.. و رغم أنه برنامج لا يعمل في الرن ليفيل إلا بإختيارك إلا أنه يبقى من الأشياء التي تؤثر في إستهلاك الذاكرة، أيضاً لا حاجة لتشغيل
CUPS
طالما أنه لا توجد طابعة لديك.. كل تلك الخدمات غير ضرورية و لا فائدة منها أصلاً لأنها لا تعمل، في اغلب التوزيعات يمكنك إستخدام الأمر
لمعرفة و تحديد الخدمات التي ترغب في إستخدامها، في سلاكوير الأمر مختلف و أعتقد أن هناك مواضيع عديدة تتحدث عن الخدمات في سلاكوير، عموماً يمكنك إلغاء تشغيل أي خدمة مؤقتاً بتغيير التصريح لها و وضع تصريح صفر للخدمة التي لاتريدها
هناك طرق أخرى لتسريع برامج معيّنة و لكن لن أتطرق للحديث عنها.. و إلا فلن أنتهي أبداً.. و لكن يمكنك إستخدام صديقك المخلص جوجل!
طبعاً هذا ليس كل شيء... هناك أشياء أخرى قد أكون لم أتذكرها.. لأني أعتمدت على إستخدامي الشخصي و خلاصة تجارب و قد أكون نسيت شيء ما.
هامش لرجالة الويكي، أتمنى أن يقوم أحد بنقله للويكي لأني هذه الفترة قليل دخولي ومشغول
و السلام ختام .
بداية الكتابة يوم الجمعة التاسع من فبراير عام 2007 -و أكمله اليوم 24 فبراير و أنا أعاني من إنفلونزا حادة.. و ربنا يستر ومتتعدوش :p
الموضوع : إزادة سرعة لينوكس و كيفية عمل الذاكرة عليه .
مقدمة إختيارية :
الموضوع تحت رخصة : ألطشّ ولا تقلّقش.
المستوى : للجميع في الشقّ الأول و للمحترفين -فقط- في الشقّ الثاني حتى لا تبكي لاحقاً!! .
لماذا هذه الرخصة؟ لأني في الأساس لا أبحث عن ذكر أسمي في الموضوع، و لكن أبحث عن إنتشار الموضوع بين أكبر كميّة من الناس، هذا يعني بأنك لو قمت بتغيير الحقوق و وضعت أسمك بدلاً من أسمي فلا يوجد أي مشكلة، لأني لم أخترع هذا الموضوع أو أخترعت أدواته ولكن تعلّمته بعد عدّة تجارب و أيضاً قرأت عنه لذا فلا توجد أي حقوق اللهم إلا حق واحد.. أن لا تنسى أني علّمتك حرفاً و عليك أن تكون لي عبّداً :D
مقدمة إجبارية :
لينوكس هو أفضل نظام في العالم يعطيك تحكماً واسعاً في كل شيء فيه أيا كان هو، و ذلك يعني بأنك يمكنك التحكم في ذاكرته و هو الشيء الذي أصبح هاماً هذه الأيام لوجود تطبيقات تحتاج لجزء كبير من الذاكرة، على سبيل المثال لا الحصر برامج الملتيميديا كمثال، أو برامج البحث، أو البرامج التي تحتاج تطبيقات الجافا أو غيرها، و لذا فإن معرفة كيفية التحكم في الذاكرة بات أمراً هاماً، و لكن الذاكرة ليست كل شيء، فالقرص الصلب أيضاً يشارك و بشكل كبير في زيادة سرعة الجهاز طبعاً هذا بخلاف سرعة المعالج و عدد المعالجات بجهازك إلخ.. لذا فالأمر متشعّب و لكن ما سأتحدث عنه هو ما يمكنك التعامل معه مثل الذاكرة و القرص الصلب و التطبيقات و طبعاً و قبل أي شيء النواة ! .
القرص الصلب :
هنا لن أتحدث عن كيفية تزويد سرعة القرص الصلب! لأنه لا يمكن التحكم في خصائصه الفيزيائية و لكن ما سأتحدث عنه هو للتوضيح عن الفروق التي قد تكون موجودة بين الأقراص الصلبة القديمة و الحديثة، لذا فلا تتوقع أن تكون نتيجة قرص صلب أنشأ عام 2007 كما هي نتيجة 2002.
أدخل إلى "الكونسول" أو أيا كان ما تستخدمه و قم بتعطيل كل الخدمات ليكون القرص في حالة IDLE قدر المستطاع :
كود:
hdparm -tT /dev/hda
كود:
hdparm -tT /dev/sda
[email protected]:~# hdparm -tT /dev/sda
كود:
/dev/sda: Timing cached reads: 3032 MB in 2.00 seconds = 1515.75 MB/sec Timing buffered disk reads: 184 MB in 3.03 seconds = 60.63 MB/sec
كود:
/dev/sda: Timing cached reads: 3556 MB in 2.00 seconds = 1777.38 MB/sec Timing buffered disk reads: 144 MB in 3.02 seconds = 47.61 MB/sec
هل هذا يعني أنه لا يمكن التحكم في خصائص القرص الصلب؟
لا..
بل نعم و لكني أكذب عليك حتى لا تقوم بتدمير قرّصك الصلب لأن التعديل على خصائص القرص الصلب حتماً ستؤدي إلى كارثة لا يمكن تجّنبها! نعم فالأمر معقد و ليس بالبسيط و قد يتلف القرص الصلب كاملاً، عن نفسي قمت بتجربة التغيير على قرص قديم لا يهمني خسارته و لم يحدث أي ضرر لي و لكن هذا لأني كنت حريص جداً جداً و بالرغم من ذلك بدأت ألاحظ بعد إنتهاء التجارب بأنه قد لا يعمل أحياناً!، أؤمن بأن أفضل الخصائص بالنسبة للقرص الصلب تأتي في الإعدادات الإفتراضية لذا فالمغامرة هنا ليست بالشيء الحسن، و أقتبس هنا مقولة من رجل عسكري كان دوماً يقول " قمّة الشجاعة هي أن لا تأخذ القرار الشجاع!".
هل هذا كل شيء حول القرص الصلب؟
نعم.. و لا !
نعم لأنه لا يوجد أي شيء ستفعله الأن مباشرة مع القرص الصلب.
لا لأن هناك بعض الخصائص التي يجب أن تكون بالنواة حتى تستطيع التعديل على القرص و لذا فسيتم تأجيل الجزئية الخاصة بالـ"DMA" إلى جزئية التعديل على النَواة .
النواة :
هذا الجزء هو الأساس لكل شيء، فالنواة هي لينوكس! نعم فكل الأشياء الأخرى التي تراها الآن أمام توزيعتك ليست سوى تطبيقات تحت رخص مختلفة أما لينوكس فهو النواة.. و النواة فقط!، نواة لينوكس سهلة التحكم جداً خاصة و أن كل شيء مرتب فيها لن تضلّ طريقك بداخلها حتى لو كانت المرّة الأولى لك.
1- إختيار نوع المعالج :
إختيار نوع المعالج خطوة مهمة جداً جداً و تؤثر بشكل كبير في الكفائة و السرعة فمثلاً جهاز بنتيوم 4 و أخترت نوع المعالج بنتيوم 2 فسيؤدي طبعاً إلى بطئ شديد و ستتعامل النواة معه على أنه بنتيوم 2! على كلّ المفترض هنا أنك تعرف نوع جهازك وإن كنت لا تعرفه فأنصحك بإغلاق الصفحة التي تقرأ منها هذا الموضوع لأنها لن تفيدك و أذهب لإستخدام البلاي ستيشن أو أنظمة الويندوز أفضل لك!.
إختيار نوع المعالج يكون عن طريق التوجه لملف النواة لديك و من ثم إختيار الواجهة التي تفضلها، عن نفسي مثلاً أستخدم
كود:
make menuconfig
كود:
Processor type and features --->
كود:
Processor family
كود:
Pentium-4/Celeron(P4-based)/Pentium-4 M/Xeon
2- تحديد المعالجات :
الحقيقة هنا لست بصدد التحدث عن عدد المعالجات و لكن حتى تعمل كل المعالجات في النواة فعليك أن تقوم بتفعيل هذا الخيار بالنواة و طبعاً الفارق كبير جدا جدا!، فمثلاً هناك أجهزة ذات معالجين أو أكثر و التي تعرف بإسم "HT" أو حتى "dual-CPU أو dual-core " لن نقارنها مثلاً ببنتيوم 3!. إذا كان جهازك ذو معالجين أو أكثر فعليك بإختيار هذا الخيار
كود:
Symmetric multi-processing support
3- إختيار عدد المعالجات :
بدأت تشعر بأني أتحدث عن النواة و أشرحها! لا و لكن هذه الخطوات تؤثر حتماَ في السرعة لذا فلا تتعجل الحكم، هذا الخيار " تحديد عدد المعالجات" ليس ضرورياً لك إن كان جهازك ذو معالج واحد، و عدد المعالجات التي قد يستطيع لينوكس تشغيلها هي 255 حتى الأن!! طبعاً أشكّ في وجود هذا الرقم على أي جهاز ممن يقرأ هذا المقال :D . عموماً يجب عليك تحدد أكبر عدد للمعالجات التي لديك من خلال القيمة :
كود:
Maximum number of CPUs
4- الرام
قم بالذهاب إلى الأسفل قليلاً حتى تجد
كود:
High Memory Support
كود:
Processor type and features --->
كود:
Off
ملحوظة هامة : الحديث هنا عن الفيزيكال رام و ليس عن الرام الوهمي" السواب" لذا فكن على حذر، و أقصد بالرام هنا هو الفيزيكال رام فقط .
هل أنتهينا من جزئية النواة؟
لا ليس بعد هناك الجزء الهام ألا وهو تفعيل الدي إم إا
DMA
طبعاً غالباً ما تفعّله النواة و لكن حديثي هنا عمّن يستخدم نواة أقل من 2.6 و قد لاحظت هذه المشكلة أثناء إستخدامي للنواة الخاصة بسلاكوير، طبعاً إذا كنت تعمل على نواة 2.6 أو ما هو أحدث من تاريخ كتابة هذه الورقة فلا توجد لديك هذه المشكلة، أما إذا كنت مصمّما على العمل بنواة 2.4 فحتما ستواجه هذه المشكلة، الحل كالتالي :
كود:
hdparm -d1 /dev/hda
ملحوظة الأقراص الصلبة من نوع "ساتا" تأتي عادة مفعّلة الأم دي أا و لكن طبعاً يجب عليك إذا كنت تواجه أي مشكلة فتأكد من
إعدادات النواة .
هذا هو الجزءالخاص بالنّواة من ناحية التعديلات عليها مباشرة. الأن سأدخل في شرح سريع لكيفية عمل الذاكرة في لينوكس و الجزئية الأهم هنا و هي السواب. إذا كنت مشوشاً أو لا تشعر بالتركيز فلا أنصحك بإكمال القراءة فالأمر يحتاج إلى تركيز إلى حد ما.و لاحظ أننا لم نترك جزئية النواة بعد .
الذاكرة و القراءة :-
معرفة حجم الذاكرة المستهلكة في لينوكس أسهل مما يمكن فهناك أدوات تسهل عليك القراءة، على سبيل المثال فالأمر
كود:
top
كود:
free
كود:
free -m
جي إف تي بي-سوبر كارمبا-جيمب-كالكوليتر-فايرفوكس-كوبيتي-كي ورد-كي جي بي جي ، إضافة إلى تشغيل واجهة الكيدي و بعض الخدمات التي تعمل في الخلفية مثل الإنترنت و الخدمات الأخرى، قمت بتشغيل كل هذه الخدمات حتى يتسنى لي معرفة كم يستهلك لينوكس من الذاكرة و طبعاً للوهلة الأولى ستبصق على الحاسوب و تقول " ما هذه الحماقة؟" هذا بعد أن تستخدم الأمر :
كود:
[email protected]:~# free -m total used free shared buffers cached Mem: 1003 983 19 0 110 571 -/+ buffers/cache: 300 702 Swap: 2047 0 2047
المشكلة هي في عدم الإلمام بكيفية عمل الذاكرة و هذا ما يتعرض له أغلب الناس، و للأسف حتى المحترفين منهم! فالذاكرة لديهم هي ما يرون بجانبه كلمة حرّ" فري" و هذا خطأ شائع، و حتى تعرف لماذا هو خطأ فتابع معي...
الفرق بين البفر كاش و الكاش العادي صعب الفهم قليلاً، إلا أني سأذكر أهم فرق بينهم لأن الأمر ليس بتلك السهولة فحتى تفهم الفرق كاملاً بينهم عليك بالقراءة حول كيفية عمل كل منهم منفصلاً.
الكاش هو عبارة عن طريقة لحفظ الصفحات عن طريق النواة و هو لا يعمل إلا في حالة وجود ذاكرة حرّة تكفي له، أي أنه لا يعمل إذا كانت الذاكرة قد أستهلكت بالكامل، و فكرة الكاش هي لتسريع فتح الملفات على القرص الصلب، لأن عملية القراءة من الكاش تكون أسرع مئات المرات من القراءة من القرص الصلب و الفرق هنا بينه و بين البفر هو أن البفر لم يتم كتابته أي شيء لازال يعمل و رغم أن كلاهما مرتبط ببعضهم بعد نواة 2.4 إلا أن كل منهم يعتبر منفصل بشكل أو بآخر.
ماذا يعني ذلك؟
ذلك يعني أن ما تراه أنت مستهلكاَ من الكاش و البفر ليس بالشيء الذي يقلقك أو الذي يقلل من ذاكرتك بل على العكس يزيدها، وذلك يعني أن الذاكرة الحرّة لدي في المثال السابق هي :
703
حيث أن كل من البفر و الكاش لا يعتبروا إستهلاك للذاكرة أصلاً لإنها على كل غير مستخدمة أو لم يحتاج الحاسوب إليها بعد لذا فيجب إستخدامها و هذا ما يفعله أسلوب إستخدام الذاكرة في لينوكس.
السواب و 2.6 :
مشكلة السواب لم يكن لها وجود في أسلوب النواة القديم أما الآن فهي قد تعتبر مشكلة لمن لا يعرف ما يناسبه وما لا يناسبه على كل حال هي ليست مشكلة بعد قرائتك لهذا الموضوع .
عندما تستهلك الذاكرة باكامل و كما وضحت في السابق أن إستهلاكها لا يحدث بسرعة وبهذه السهولة و بأن المساحة الحرة هي كبيرة طالما أن البفر و الكاش مازالا مستخدمين. عندما تستهلك فتتبع النواة أسلوب ذكي لمحاولة خلق ذاكرة جديدة و هو بمحاولة مسح القليل من الكاش الذي شرحته بالأعلى لمحاولة خلق ذاكرة جديدة، هنا تقوم النواة بمسح الكاش القديم فقط أو الغير مستخدم منذ فترة كبيرة. و هنا تكمن المشكلة!
المشكلة هي في وضع قيمة كبيرة للسوابنيسس، و هي المسؤولة عن عملية إستبدال الصفحات التي تم عمل كاش لها بالعمليات التي في الذاكرة، بمعنى أوضح هذه القيمة تحدد عمل السواب و عمل الكاش، على كل حال ليست هذه القيمة وحدها التي ستجعل النواة تعمل بشكل جيّد إلا أنها من أهم القيم ، لتفهم ما الذي ستكون أنت في حاجة له عليك أن تقرر إذا ما كنت ستحتاج الذاكرة لتشغيل برامج كبيرة مثلاً أم أنت في حاجة لعمل كاش للصفح حتى تكون القراءة من القرص أسرع " كما شرحت بالأعلى ". هذه الإشكالية تعتمد عليك أنت، على أي حال القيمة التي وضعها مطوروا النواة كانت 60، إاذ كنت تستخدم رام أقل من
512
فأجعل القيمة لا تتعدى ال20، أما إذا كنت ستتخدم رام أكبر من ذلك فلتكن بين 40 و 60، قرأت منذ مدة أن بعض الناس يضع 100 مثلاً.. و آخرين يضعون 0! فإذن الأمر يتعلق بإحتياجاتك أنت.
هذه الإشكالية حتى الأن لا خيار ثابت لها.
لتحديد القيمة عليك وضعها هنا
كود:
/proc/sys/vm/swappiness
كود:
echo 60 >/proc/sys/vm/swappiness
كود:
sysctl
كود:
sysctl -w vm.swappiness=60
إلى هنا و أكون قد أنتهيت من جزئية النواة و لننتقل إلى جزء آخر..
الخدمات :
الخدمات هي الأساس لكل شيء فكل ما سبق ذكره ما هو إلا 50% و الخدمات هي الشقّ الأكبر، على سبيل المثال يأتي مستخدم ليشكي و يقول : الخادم بطيء جداً من الساعة العاشرة للساعةالحادية عشر.
حينها سأضع يدي على عيني و سأحاول أن لا أرى كلامه، فالمستخدم يعرف جيداً أن في هذا الوقت مثلاً هناك عمليات نسخ إحتياطي تحدث، رغم ذلك فهو لا يريد أن يشعر ببطئ أبداً!، أو مثلاً يكون هناك تحديث لقواعد ملفات البحث لديه، المشكلة هي أن المستخدمين لا يهتموا سوى بالسرعة..لا يهم أي شيء آخر و لا التفاصيل حول عدد البرامج التي تعمل وخلافه..!
في أغلب توزيعات لينوكس بخلاف سلاك وير فإن هناك ملف لتشغيل الخدمات جميعها.. و هذا الملف هو
كود:
/etc/init.d/
CUPS
طالما أنه لا توجد طابعة لديك.. كل تلك الخدمات غير ضرورية و لا فائدة منها أصلاً لأنها لا تعمل، في اغلب التوزيعات يمكنك إستخدام الأمر
كود:
chkconfig
كود:
chmod 000 /etc/rc.d/service
طبعاً هذا ليس كل شيء... هناك أشياء أخرى قد أكون لم أتذكرها.. لأني أعتمدت على إستخدامي الشخصي و خلاصة تجارب و قد أكون نسيت شيء ما.
هامش لرجالة الويكي، أتمنى أن يقوم أحد بنقله للويكي لأني هذه الفترة قليل دخولي ومشغول
و السلام ختام .
تعليق