Skip to content
VDS · مانیٹرنگ اور کارکردگی

میموری اور swap: اعلیٰ ٹیئر کا وقت کب ہے

عام میموری کے استعمال اور کمی میں کیسے فرق کریں، چھوٹے ٹیئر پر swap کیوں ضروری ہے، اور کن علامات سے اعلیٰ پلان پر منتقل ہونے کا فیصلہ کریں۔

اپ ڈیٹ 23 اگست، 2026

"2 GB میں سے 120 MB مفت" نئے صارفین کو خوفزدہ کرتا ہے اور Linux پر اس کا کوئی مطلب نہیں: سسٹم جان بوجھ کر مفت میموری کو فائل کیش کے لیے استعمال کرتا ہے، کیونکہ خالی میموری بیکار ہے۔ ایک مختلف کالم اصل تصویر دکھاتا ہے۔

free کو درست طریقے سے پڑھنا

free -h
#               total  used   free  shared  buff/cache  available
# Mem:          1.9Gi  742Mi  102Mi    18Mi       1.1Gi      1.0Gi
# Swap:         1.0Gi  126Mi  898Mi

available کو دیکھیں — کہ کیش ہٹا کر کوئی ایپلیکیشن کتنی میموری حاصل کر سکتی ہے۔ جب تک یہ قدر صفر سے کافی اوپر ہے، مشین ٹھیک ہے۔ اس لحاظ سے free بیکار ہے۔

خطرے کی علامات:

  • available total کے 10% سے کم ہو؛
  • Swap used بڑھتا رہے اور آزاد نہ ہو؛
  • vmstat 2 میں si/so غیر صفر اور مستقل ہوں — سسٹم مسلسل ڈسک پر paging کر رہا ہے۔

میموری دراصل کون کھا رہا ہے:

ps aux --sort=-%mem | head -10
smem -tk -s uss 2>/dev/null | tail -10

Swap: ضروری ہے یا نہیں

چھوٹا swap کسی بھی ٹیئر پر مفید ہے: یہ سسٹم کو وہ صفحات منتقل کرنے کی جگہ دیتا ہے جو طویل عرصے سے استعمال نہیں ہوئے اور مختصر spike کے دوران کسی پروسیس کے فوری مرنے سے بچاتا ہے۔ یہ میموری کا متبادل نہیں — ڈسک سینکڑوں گنا سست ہے۔

2 GB کی swap فائل بنائیں:

fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile && swapon /swapfile
echo '/swapfile none swap sw 0 0' >> /etc/fstab

سسٹم کے swap کرنے کے شوق کو قابو میں رکھیں:

sysctl -w vm.swappiness=10
echo 'vm.swappiness=10' > /etc/sysctl.d/99-swap.conf

یاد رکھیں کہ swap فائل ٹیئر کی ڈسک پر جگہ لیتی ہے (VDS-1 پر 40 GB)، اور اس پر لکھنا ڈسک کی رفتار کی bandwidth کھاتا ہے، دیکھیں ڈسک لوڈ۔

Leak ہے یا میموری کم ہے

پینل /hosting/vds/m/<id> میں ہفتہ وار پیمانے پر میموری کا گراف ان دونوں میں فرق کرنے میں مدد کرتا ہے:

  • آرا کے دانتے — چھت تک بڑھتا ہے، سروس ری اسٹارٹ ہونے پر گرتا ہے، پھر بڑھتا ہے۔ یہ ایپلیکیشن میں leak ہے؛ اونچا ٹیئر صرف مسئلہ مؤخر کرے گا۔
  • شروع ہی سے چھت پر ہموار سطح — working set کے پاس بس جگہ کم ہے۔
  • تیز کمی — OOM killer نے پروسیس کو مار دیا؛ مضمون میموری ختم دیکھیں۔

پلان تبدیل کرنے سے پہلے ظاہری باتوں کا خیال رکھیں: journal کے لیے SystemMaxUse محدود کریں، ڈیٹا بیس کے لیے معقول حدود مقرر کریں (MySQL بطور ڈیفالٹ کافی زیادہ مانگتا ہے)، غیر استعمال شدہ سروسز ہٹائیں (systemctl list-units --type=service --state=running)، اور PHP-FPM اور Gunicorn کے workers کی تعداد کم کریں۔

اپ گریڈ کب کریں

اگر صفائی کے بعد available ہفتوں تک صفر کے قریب رہے، swap مسلسل استعمال ہو، اور آپ کو مجموعی طور پر ایپلیکیشن کی ضرورت ہو، تو اونچا ٹیئر لیں۔ میموری سیریز 2, 4, 8, 16, 24, 32 GB کے ساتھ بڑھتی ہے۔ اپ گریڈ صرف اوپر کی طرف ہوتے ہیں، باقی دنوں کی اضافی ادائیگی کے ساتھ؛ ڈاؤن گریڈ دستیاب نہیں: ڈسک چھوٹی نہیں ہوتی۔ تفصیلات کے لیے مضمون پلان اپ گریڈ دیکھیں۔

عام غلطیاں

  • swap مکمل طور پر بند کر دینا۔ spike کے دوران سسٹم ایک منٹ زندہ رہنے کے بجائے پروسیس کو مار دے گا۔
  • swap کو ڈسک کے سائز کا بنانا۔ مشین مرے گی نہیں، لیکن گھنٹوں رینگے گی، جو فوری crash سے بدتر ہے۔
  • htop میں VIRT دیکھنا۔ JVM، PostgreSQL، اور Node کے لیے virtual سائز بہت بڑا ہوتا ہے اور کھپت ظاہر نہیں کرتا۔ RES دیکھیں۔

آپ کو میموری outage سے پہلے چیک کرنی چاہیے، بعد میں نہیں۔ حد کے alerts سیٹ کریں — مضمون سائٹ ڈاؤن ٹائم الرٹس میں ایک آسان ترکیب موجود ہے۔