اذهب إلى المحتوى

يتناول هذا المقال محاسن ومساوئ استخدام ذاكرة وهميّة (virtual memory)، أو كما يُطلق عليها بملفّ التبديل (swap file)، أو كما تُطلِق أنظمة ويندوز على هذه التقنيّة بالترقيم (paging)، أيضا سيتمّ التَّطَرُّق إلى كيفيّة تحديد فيما إذا كان النّظام المؤجّر (الخادوم) يستخدم هذه الذّاكرة الوهميّة أم لا، كما سيتمّ التَّطَرُّق إلى الاختلاف بين ملفّ التبديل (swap file)، وقسم التبديل (swap partition)، وكما سيتمّ تناول آلية إنشاء ملفّ تبديل، وكيفيّة إعداد ملفّات “swappiness”، والّتي تسمح لمُدير النظام بتحديد مدى الاعتماد على الذّاكرة الوهميّة، والحجم المُناسب للاستخدام.

يمكن الاستزادة والقراءة عن التبديل (Swap)، والذّاكرة الوهميّة على موسوعة ويكبيديا، والّتي ستجيب على الكثير من الأسئلة الّتي لن يتطرّق لها هذا الشرح.

سيتمّ اقتباس أحد الأجزاء المهمّة:

يُعتبر الترقيم (paging) جزء من إتمام وإنجاز الذّاكرة الوهميّة في معظم أنظمة التشغيل الحديثة، والمُصنّفة على أنّها للأغراض العامّة، لتسمح لهذه الأنظمة في استخدام الأقراص في حفظ المُعطيات الّتي لم يتمّ احتوائها في ذاكرة الوصول العشوائية (RAM) الفيزيائيّة.

يُعتبر الترقيم (paging) في أنظمة التشغيل الخاصّة بالحاسوب جزء من تصميمات/وحدات إدارة الذّاكرة، والّتي من خلالها يقوم الحاسوب بتخزين واستعادة المُعطيات من وحدة تخزين ثانويّة، وذلك للاستخدام في الذّاكرة الرَّئِيسَة، حيثُ يستعيد نظام التشغيل المُعطيات من وحدة التخزين الثانويّة ذات نفس الحجم الكتل (blocks)، والّتي تُدعى صفحات (pages)، حيثُ تعتبر الغاية الرئيسيّة من استخدام الترقيم على استخدام مُتجزّئات الذّاكرة (memory segmentation) هي السماح لمساحة العنوان الفيزيائي الخاصّ بالعمليّة (process) ليُحفظ بشكل غير مُتجاور، حيثُ أنّه وقبل أنّ يتمّ العمل بنظام الترقيم، كان على الأنظمة أنّ تَحشر جميع البرامج داخل وحدة التخزين على شكل مُتجاور، الأمر الّذي كان يُسبب مشاكل في التخزين ومشاكل في التجزئة (fragmentation).

الذّاكرة الوهميّة ومُتطلّباتُها

ماهي الذّاكرة الوهميّة ولماذا يجب استخدامها؟

ليس المهم إن كان النظام يَملك ذاكرة وصول عشوائي من الحجم 512mb، أو حتّى 8mb، وليس مُهمًا إن كان نظام التشغيل هو Arch أو Fedora أو CentOS أو Debian، أو حتّى Ubuntu، فإن التطبيقات أوالخواديم ستحتاج إلى المزيد من الذّاكرة العشوائيّة الفيزيائيّة، أو الذّاكرة المُحدّدة (memory allocated) الوهميّة عندما يكون الخادوم خادومًا وهميًّا، كما هو حال الخادوم المُستخدم في هذا الدليل.

إنّ معرفة فيما إذا كانت الذّاكرة الوهميّة غير مفعّلة على النّظام لأمرٌ ضروريٌ يجب على مُدير النظام أن يُدركه، حيثُ أنّ النّظام في حال وصوله إلى نقطةٍ ما لا يتوفّر به أي ذاكرة حرّة، وطلبت خدمةٌ ما، أو برنامجٌ ما، أو ربما خادم الوب نفسه إلى المزيد من الذّاكرة، سيؤدي ذلك إلى فشل هذه الخدمة أو البرنامج عن العمل، وبناءً على نظام التشغيل وإعداداته، فمن المُمكن جدًا أنّ يسبب ذلك إلى مشاكلٍ لا تُحمد عُقباها، أو على الأقل ستصبح البرامج في حالة من عدم الاستقرار، وأيضًا قد تُجبر بعض التطبيقات على التوقف عن العمل لتحرير مساحة الذّاكرة المطلوبة، الأمر الّذي يزيد من تعقيد الأمور، خاصّة عندما يكون هذا الخادوم خادومًا يعمل في البيئة الحقيقية (production server)، وليست البيئة التّطويريّة (development server).

يَنصح الخبراء، وبسبب الاحتماليّة السابقة، مُدراء الأنظمة، وحتّى الأشخاص غير المتخصّصين، وعلى أي نظام تشغيل، سواء Windows، أو OSX، أو حتّى الأجهزة اللّوحيّة الخاصّة الّتي تعمل بنظام التشغيل Android، بوجوب تفعيل الذّاكرة الوهميّة، حتّى ولو بحجمٍ صغيرٍ.

آلية عمل الذّاكرة الوهميّة

تُقدّم الذّاكرة الوهميّة للنظام، وبطبيعة الحال للتطبيقات الخاصّة به، ذاكرة RAM وهميّة إضافية، بالإضافة إلى ما يقدمه النّظام من ذاكرة فيزيائيّة – في حالة الخادوم الوهميّ ستكون الذّاكرة هي الذّاكرة المُحدّدة (allocated memory)، وليست الذّاكرة الفيزيائيّة – تعمل الذّاكرة الوهميّة عملها بالاستعانة بأقراص التخزين (disks) في سبيل تقديم هذه المساحة الإضافيّة، وذلك عن طريق تبادل المعطيات ذهابًا وإيابًا بين ذاكرة النّظام، والذّاكرة الوهميّة، وعلى حسب الحاجة.

يجب أنّ يعي مُدراء الأنظمة أنّ عمليّة الكتابة والقراءة على الأقراص (disks) – حتّى السريع منها SSD – هي أبطأ بكثير من الكتابة على ذاكرة النّظام الحقيقيّة، فعلى الرغم من أنّ الذّاكرة الوهميّة ستقدّم مساحة تخزين لتنقذ بها موارد النّظام، من تطبيقات وخدمات لتعمل بشكلٍ ملائم، وتجنيبها الخروج عن العمليّة التشغيليّة المخصّصة لها (وذلك عن طريق عدم الوقوع في شرك “امتلاء الذّاكرة“) فإن الذّاكرة الوهميّة ليست بالبديل عن الذّاكرة الفيزيائيّة، وليست بالحلّ العمليّ الذي يُمكن الاعتماد عليه، ولا يُمكن بأي حالٍ من الأحوال الاستغناء عن ترقية الذّاكرة الفعليّة الخاصّة بالنظام إنّ كان النظام يستعين بالذّاكرة الوهميّة بشكلٍ كبير.

قد لا تبدو فكرة هذا الدليل بتلك الأهميّة لبعض خُبراء الأنظمة، ولكنها في حقيقة الأمر معلومات لا يُمكن تجاهلها، وخاصّةً لأي شخص يستخدم خدمات الاستضافة (hosting services)، وبالتحديد لهؤلاء الجُدد منهم على أنظمة VPS بشكلٍ عام، أو أي خادومٍ مهما كان.

مُتطلّبات بيئة العمل

تتطلّب بيئة العمل إعدادًا بسيطًا للغاية، ومن المُفترض أنّ تعمل هذه التقنيّة على جميع التوزيعات باختلاف أشكالها ونكهاتها، أو مع الأنظمة الوهميّة أو الفيزيائيّة، حتّى أنها تعمل على أنظمة Android، سواءً أجهزة الهاتف المحمول، أو الأجهزة اللوحيّة ولكن بشرط توفّر صلاحيات وصول عالية (root).

مُتطلّبات تطبيق هذا الدليل

  • خادوم وهميّ يعمل بأحد أنظمة التشغيل المُعتمدة على Linux
  • صلاحيات وصول كاملة سواءً كان الخادوم محلي local أو يعتمد على تقنيّة الوصول عن بُعد vnc أو باستخدام تقنية ssh.
  • الأوامر الّتي سيتمّ استخدامها هي: freeswaponddmkswap، والّتي من المُفترض توفّرها على أي منصّة.

تَقوم مُعظم المنصّات وبشكل آليّ بإنشاء إما قسم تبادل، أو ملفّ خاص داخل قسم النظام، وذلك خلال عمليّة إعداد النّظام، وبحجمٍ عادةً ما يكون مُعتمدًا على الذّاكرة الحقيقيّة للنظام RAM، فإما أنّ يكون نفس الحجم الذّاكرة أو ضعفها.

المحاسن والمساوئ

تجدُر الإشارة قبل الدخول في التفاصيل، أنّ أقراص SSD:

  • أسرع بكثير من الأقراص الصلبة العاديّة.
  • لا تعاني من انخفاض أداء عند البحث (low seek times)، والذي يُسببه رأس القرص الصلب عند تنقله الفيزيائيّ لقراءة البيانات.
  • معدّل طلبات إدخال وإخراج (IO) مُنخفض خلال الثانية الواحدة.
  • تستطيع القراءة من أجزاء متعدّدة وفي نفس الوقت، بينما لا تستطيع الأقراص الصلبة العاديّة القراءة سوى من جزء مُحدّد في الوقت نفسه.

تُقدم أقراص التخزين SSD قيمةً إضافيّة للذاكرة الوهميّة، وتُقلّل من المعاناة الّتي قد يُواجها مُدير النّظام مع الأقراص الصلبة، ومع ذلك فليس من المُستحسن الاعتماد عليها واستخدامها بدلًا من الذّاكرة RAM، خاصّةً مع الخواديم ذات الحِمل العالي: خواديم البريد الإلكتروني (web mail)، أو خواديم الوب (web server)، أو خواديم قواعد البيانات (database server).

محاسن استخدام الذّاكرة الوهميّة

  • حماية ضد أخطاء “امتلاء الذّاكرة” (out of memory)، أو ما يُشار إليها بالاختصارOOM، بالإضافة إلى الحماية من انهيار النّظام، والحماية من دخول الخادوم في حالة عدم استقرار.
  • زيادة الذّاكرة المُتوفّرة للنظام، الأمر الّذي يسمح بتشغيل المزيد من البرامج والتطبيقات بنفس الوقت، مع توفّر أمان عالي أثناء عملها.
  • تقوم أقراص التخزين من نوع SSD بالتقليل من الفتور (lag)، بالإضافة إلى التقليل من عدد النقرات (thrashing)، وذلك عن طريق زيادة وقت استجابة الترقيم (paging).

مساوئ استخدام الذّاكرة الوهميّة

  • تزداد معدّل النقرات (thrashing)، عندما يكون النّظام مشغولًا جدًا، ويطلب ذاكرة أكثر من المُعدّل الطّبيعيّ، وعندما لا تستطع الذّاكرة الفيزيائية تلبية حاجة النّظام، سيُجبر النّظام على الدخول في دوامة يقوم بها بنقل بيانات البرامج من وإلى القرص، ومن وإلى الذّاكرة العشوائيّة، وعلى مُقتضى الحاجة، ولرُبما تبدو هذه الحالة بالمألوفة لمُستخدمي أنظمة التشغيل ويندوز، عندما يتمّ تحميل النظام فوق طاقته، سيدخل القرص الصلب في قيلولة، قد لا يستيقظ منها قبل أنّ ينتهي فنجان القهوة، ولكن هذه الحالة من المُمكن تجنبها بالإعداد المُناسب، واستخدام أقراص من SSD

  • استهلاك مساحة القرص الصلب، حيث تعتمد هذه المساحة على ذاكرة النّظام الرئيسية، فعند توفّر ذاكرة بسعة 512mb، فمن المُستحسن استخدام 512mb إلى 1.5g للتبديل، ولكن على صِغر هذه المساحة، ستبقى مساحةً ناقصةً من قرص الخادوم في جميع الأحوال.

يُنصح بشكلٍ عام باستخدام قرص مُقسّم ومُخصّص لعمليّة التبديل، ولكن هذا الأمر قد لا يتوفّر في بعض الأنظمة المؤجّرة، ولذلك سيكون لا محالة من استخدام نظام ملفّ التبديل (swap file) أو صورة قرص (disk image)

كيف يتمّ التأكد من تفعيل خدمة الذّاكرة الوهميّة على الخادوم الخاصّ الوهميّ

قد يكون الخادوم المؤجّر بالفعل يستخدم الذّاكرة الوهميّة، وللتأكّد من ذلك يُمكن الاستعانة بالأمر free، والّذي يَكشف لمُدير النّظام إن كانت خدمة التبديل مفعّلة أم لا، ويُظهر العديد من الخيارات الإضافيّة، والّتي تكون مُساعدة لمُدير النّظام، مع الانتباه أنّه يجب استخدام المُستخدِم root لتنفيذ الأمر، ولتحديد المُستخدِم الحاليّ يُمكن الاستعانة بالأمر whoami.

bash-root@academy.hsoub:/# free

يُظهر الأمر free معلومات عن ذاكرة النّظام الوهميّة والذّاكرة الفيزيائيّة، وفيما إذا كانت الذّاكرة الوهميّة مُفعّلة أم لا، فالمُخرجات التّالية هي لخادوم قد تمّ تفعيل خدمة التبديل عليه:

bash-root@academy.hsoub:/# free
             total       used       free     shared    buffers     cached
Mem:        361996     360392       1604          0       1988      54376
-/+ buffers/cache:     304028      57968
Swap:       249896          0     249896

وفي حال كانت خدمة الذّاكرة الوهميّة مُعطّلة ستكون المُخرجات على الشكل التّالي:

bash-root@academy.hsoub:/# free
             total       used       free     shared    buffers     cached
Mem:        361996     360392       1604          0       2320      54444
-/+ buffers/cache:     303628      58368
Swap:            0          0          0

يُمكن استخدام الأمر free | grep Swap لعرض المُخرج المطلوب فقطّ، وهو السطر الخاصّ بالخاصيّة Swap.

bash-root@academy.hsoub:/# free | grep Swap
Swap:       249896          0     249896

الفرق بين أقسام التبديل وملفّات التبديل

ملاحظة حول أقسام التبديل (Swap Partitions)

يُفضل بشكلٍ عام استخدام قسم/تجزئة تبديل مُخصّص (dedicated swap partition) على القرص الصلب، وذلك للأنظمة الّتي تعتمد على لينكس في بُنيتها، مع العلم أنّ مُعظم الأنظمة تقوم بهذه العمليّة خلال عمليّة الإعداد (التنصيب)، وفي هذه الحالة ستكون الذّاكرة الوهميّة من نوع “قسم التبديل” (swap partition) في مُعظم الأحيان.

ولكن يُمكن استخدام الطريقة الّتي سيتمّ شرحها في هذا الشرح لزيادة الذّاكرة الوهميّة المتاحة باستخدام ملفّ التبديل swap file، ليتمّ به زيادة مساحة قسم التبديل، مع العلم أنّه إنّ كان النّظام يدير عمليّة التبديل، فقد يكون إضافة ذاكرة وهميّة غير ضروريّ، وقد يكون من الأفضل الاعتماد على الإعداد الافتراضيّ.

ما هو ملفّ التبديل (Swap File)

تخزّن بعض الأنظمة (خاصّةً نظام التشغيل ويندوز) الذّاكرة الوهميّة في ملفّ مُحدّد، بدلًا من استخدام قرص كامل لذلك، وهذا الأسلوب هو المُستخدم دائمًا عندما لا يكون من المُمكن استخدام قسم كامل للذاكرة الوهميّة، وإن هذا النوع من الملفّات يقابله بما يُسمى صورة قرص disk image على أنظمة التشغيل لينكس.

ما هو صورة القرص (Disk Image)

يتضمّن هذا النوع عادةً ملفّات التبديل وبياناتها، بالإضافة إلى ملفّات النّظام المرتبطة معها، ويُستخدَم هذا النوع في بعض الأنظمة المؤجّرة لأخذ نسخة احتياطيّة كاملة عن النّظام، أو في تهجير النّظام (migration) من مكان إلى آخر، ومن الأمثلة الشائعة أيضًا عن هذا النوع من الملفات هو توزيعات لينكس كيف أنّها تأتي باللاحقة .iso، والّتي تستخدم في تنصيب النّظام كما هو معروف.

إنشاء ملفّ تبديل (Creating the Swap File)

لا تَسمح بعض الأنظمة المؤجّرة بتقسيم وتهيئة مساحة التخزين، لذلك يَتوجّب على مُدير النّظام استخدام صورة قرص (disk image)، ومع العلم أنّ أنظمة التشغيل المبنيّة على NIX* تستخدم نظامًا خاصًا ومكرّسًا لعمليّة التبديل (swap)، ولهذا السبب يُفضّل البعض قسم التبديل على ملفّ التبديل، ولإنشاء هذا النوع من الملفّات يجب إنشاء صورة قرص فارغة (empty disk image) بحجم مُتوافق مع الذّاكرة الوهميّة المطلوبة، وتهيئتها لبدء العمل.

يجب أولًا تحديد مكان الملفّ، ويجب توفّر مساحة كافية على القرص، فعند الرغبة بإضافة ذاكرة وهميّة بحجم 512mb، سيكون عندها ملفّ التبديل تقريبًا بذلك الحجم.

يُمكن استخدام الأمر df-h، لاستعراض التقسيمات المُدرجة (mounted partitions)، كما يُظهر هذا الأمر معلومات عن نظام الملفّات المُستخدَم وحجم كل تقسيم، والمساحة الحرّة الخاصّة بكل قسم.

سيتمّ إضافة ملفّ التبديل في المسار /var، وبالاسم ”swap.img”، وبالصلاحيات 600، وذلك فقطّ لكي لا يستطيع أيًا كان من المُستخدمين قراءة مُحتويات ذاكرة النّظام (الوهميّة).

bash-root@academy.hsoub:/# cd /var
bash-root@academy.hsoub:/var# touch swap.img
bash-root@academy.hsoub:/var# chmod 600 swap.img

اختيار حجم ملفّ التبديل (Sizing Swap File)

سيتمّ في هذه الخطوة اختيار حجم الملفّ، وهو أمرٌ هامٌ جدًا، ويَختلف الحجم الأنسب على حسب نظام التشغيل وحسب الحالة، ولكن بشكلٍ عام، يُنصح دائمًا بأن تكون الذّاكرة الوهميّة أما بنفس حجم ذاكرة الوصول العشوائي (RAM)، وأو ضعف حجمها، ولكن عندما يتوفّر بالنظام ذاكرة فيزيائيّة كبيرة الحجم، فلا يُنصح بتكبير حجم ملفّ التبديل.

سيتمّ استخدام الأمر dd لحشو ملفّ التبديل بمعطيات وهميّة، ليتوسع إلى الحجم المطلوب، في المثال التّالي سيكون 1024mb.

bash-root@academy.hsoub:/var# dd if=/dev/zero of=/var/swap.img bs=1024k count=1000
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB) copied, 4.0868896 s, 253 MB/s

تحضير صورة القرص (Disk Image)

سيتمّ تطبيق الأمر mkswap، وذلك لتحضير نظام الملفّات للملفّ swap.img، بعد ذلك سيكون الملفّ جاهزًا للاستخدام.

bash-root@academy.hsoub:/var# mkswap /var/swap.img
Setting up swapspace version 1, size = 1020 GiB
no label, UUID=72761533-8xbe-436l-b07e-c0sabe9cedf3

كيفيّة تفعيل وتعطيل ملفّ التبديل (Enabling and Disabling Swap)

تفعيل ملفّ التبديل

سيتمّ استخدام الأمر swapon لتفعيل ملفّ التبديل، مع الانتباه أنه في حال نجاح عمليّة التفعيل، فالأمر السابق لا يَعرض مُخرجات بنجاح العمليّة والحالة النهائيّة، ولذلك يُمكن استخدام الأمر free.

bash-root@academy.hsoub:/var# swapon /var/swap.img
bash-root@academy.hsoub:/var# free
             total       used       free     shared    buffers     cached
Mem:        503596     478928      24668          0      38832     102384
-/+ buffers/cache:     337712     165884
Swap:      1048572       1780    1046792

ولتعطيل ملفّ التبديل يُمكن استخدام الأمر swapoff /var/swap.img.

تفعيل ملفّ التبديل خلال عمليّة الإقلاع

يقوم الأمر swapon بتفعيل ملفّ التبديل فقط للإقلاع الحاليّ للنظام، بمعنى أنّه عند إعادة إقلاع الخادوم، سيكون ملفّ التبديل معطلًا، إلا إذا تمّت برمجة الأمر ليتم تنفيذه عند الإقلاع، أو تمّ التعديل على الملفّ /etc/fstab، وهي الطريقة الأسهل والأكثر استخدامًا.

ما يجب عمله هو إضافة سطر إلى الملفّ /etc/fstab، ليتمّ تفسيره عند الإقلاع، ولكن يجب الحذر في استخدام هذا الأمر، فالتعديل الخاطئ من شأنه أنّ يعطب النّظام.

bash-root@academy.hsoub:/var# echo "/var/swap.img    none    swap    sw    0    0" >> /etc/fstab

يُستخدم الرمز >> للإضافة، ولو تمّ استخدام الرمز >، لتمّ الكتابة من جديد ومسح الإعدادات (مُحتويات الملفّ) السابقة.

إعدادات إضافيّة ومعلومات تفصيليّة

ما أنّ يتمّ تفعيل ملفّ التبديل، لتصبح الذّاكرة الوهميّة على أتمّ الاستعداد لتعمل عملها، ولكن هناك بعض التفاصيل الّتي سيتمّ التّطرّق لها لفهم أفضل لعمل هذه التقنيّة.

الأولَوِيّات

يجب تحديد أولَويّات عند استخدام أكثر من ملفّ تبديل، أو عند استخدام أقسام موزّعة عبر أجهزة عدّة، 
بمعنى أنه يجب تحديد ترتيب أولويّة لكل جزء من أجزاء التبديل، فالحاجة إلى توزيع الأولويات هو للتفضيل بين الجزء السريع على البطيء، أو للتفضيل بين قسم التخزين الخامل (idle) على القسم النشط، ولذلك يتمّ تمرير الأولويّة كمُعامل للأمر swapon، أو استخدام الملفّ /etc/fstab في ذلك.

سيستخدم النّظام قسم التبديل ذو الأولويّة الأعلى على أقسام التبديل ذو الأولويّة المُنخفضة:

​bash-root@academy.hsoub:/var# swapon -p 100 /var/swap.img
bash-root@academy.hsoub:/var# swapon -p 10 /mnt/SecondDrive/swap.img

ولاستخدام الملفّ /etc/fstab لتحديد الأولويّة يُمكن كتابة السطور التّالية:

/var/swap.img none swap defaults,pri=100 0 0
/mnt/SecondDrive/swap.img none swap defaults,pri=10 0 0

خيارات الأمر sysctl

سيتمّ استخدام الأمر sysctl، وذلك لتغيير الإعدادات المخصّصة بمُدير الذّاكرة الوهميّة (virtual memory manager) لنظام التشغيل لينكس.

يُعتبر الإعداد الخاصّ بـ vm.swappiness هامًا جدًا، ومُهمته إخبار مُتولّي (handler) نواة النّظام كيف من المُفترض أنّ تُستخدَم الذّاكرة الوهميّة، وقيمة هذا الخيار تُحدّد بالنسبة المئويّة أي بين 0-100، والنسبة 60 هي الافتراضيّة في مُعظم التوزيعات، وعند الإعداد يجب الانتباه إلى التّالي:

  • القيمة 0: بالكاد ستستخدم النواة أيًا من مساحة التبديل المتوفّرة، بل ستصب كافة الأحمال على ذاكرة النّظام المتوفّرة أولًا.
  • القيمة 100: ستستخدم النّواة مُعظم مساحة التبديل المتوفّرة، وستُحاول إبقاء المساحة العُظمى من ذاكرة النّظام حرّة للاستخدام.

لا يوجد قيمة مثاليّة هنا، أو قاعدة يجب الالتزام بها، بل تختلف الحالة، ولكن القيمة 30% مُناسبة بشكل عام، والّتي من شأنها الموازنة بين التبادل (swapping)، وذاكرة النّظام (system memory).

bash-root@academy.hsoub:/var# sysctl -w vm.swappiness=30
vm.swappiness = 30

كلمات أخيرة

يجب أن يُدرك مُدير النّظام بعد هذا الشرح أهمّيّة ملفّات التبديل ومدى تأثيرها على استقرار النّظام في بيئة العمل الحقيقيّة (production environments)، وهذا من شأنه أيضًا أنّ يسمح لمُدير النّظام باستخدام هذا النوع من التقنيّة في بيئة التّطوير لتجربة بعض التّقنيّات الّتي يعمل عليها.

ترجمة – وبتصرّف – للمقال How To Configure Virtual Memory (Swap File) on a VPS لصاحبه Jai Boudreau.


تفاعل الأعضاء

أفضل التعليقات

لا توجد أية تعليقات بعد



انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أضف تعليق

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • أضف...