میموری اور 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 بیکار ہے۔
خطرے کی علامات:
availabletotalکے 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 سیٹ کریں — مضمون سائٹ ڈاؤن ٹائم الرٹس میں ایک آسان ترکیب موجود ہے۔