سلام
(در پرانتز- این متون رو شاید فقط یک برنامه نویس بفهمه ...)

فکر کنم این یک ضرب المثل باشه که تجربه فراتر از علمه. ولی الان که فکرش رو میکنم تجربه همون علمه...

خدا هیچ بنی بشری را برنامه نویس بی یار و یاور نکنه ...

خیلی سخته وقتی که گیری کنی و هیچ احد و ناسی توان پاسخ گویی به مشکلت رو نداشته باشند و خودت باشی و خدا.

چون کار من سرور هست و برنامه نویسی های مربوط به اون برخی اوقات مخاطبین خیلی زیادی وارد سامانه هام میشوند و باید کاری کنم که سامانه نپره. این لحظه جنگ رو بارها و بارها تست کردم.

قابل پیش بینی هم نیستند، برخی اوقات که بدونی سامانه در تست واقعی چطور جواب میده.

اخیرا نرم افزاری داشتم که باید پاسخگوی 2700 نفر فعالیت آنلاین و همزمان را می داد.

در این مواقع همه کوچکترین جیزهای ممکن باعث میشه هنگی اتفاق بیفته. یاد مرحوم ادوارد مرفی(قانون مرفی) افتادم که میگفت اگر امکان اتفاق بدی وجود داشته باشه اون اتفاق میفته.

برای این سامانه وقتی مخاطبین وارد شدند و تعدادشان رفت بالا سامانهبه فنا رفت و من تمام مشکلات رو بررسی کردم که ببینم چه چیز باعث هنگی میشه.

سرورم رم و سی پی یو کم نمی آورد و درخواست های http بسیار زیادی را تحمل می کرد.

اولین قدم هسته برنامه نویسیم رو تغییر دادم و تقریبا از اول api خودم رو نوشتم و اسمش رو گذاشتم api2 در این یکی سعی کرده بودم درخواست های http رو به حد اقل برسونم.

ولی بازم نشد. httpd یا همون apache گیر کارم بود به محضی که 3 تا pid بیشتر میشد و مصرف رم بالای 150 مگ می رسید سامانه هنگ می کرد و یک هو درخواست های بالا می رفت.

اول تلاش کردم تنظیمات apache رو تغییر بدم ولی هر کاری می کردم نمی شد و 2700 نفر چشم انتظار انگشتان و مغز نیم پز من ...

نمیدونم چی شد که تصمیم گرفتم وبسرور رو از Apache به nginx تغییر بدم. تا اون موقع تجربه کار با nginx رو نداشتم و خودم رو تو یک بحران میدیدم

اگر همه چیز به هم بریزه چطور؟

خلاصه دل رو زدم به دریا و دایرکت ادمین رو با کاستم بیلد از اول اول اول اجرا کردم. حدود 15 دقیقه طول کشید تا اینکه سامانه بالا اومد ولی متاسفانه mysqld پایین اومد

15 دقیقه هم درگیر این بودم که اون یکی چه مرگیش شده که فهمیدم مشکل از diskspace هست بلاخره تمام تلاشم رو کردم و سامانه اومد بالا.

 فقط باید حواستون به htaccess باشه

که خبر خوب اینه که در دایرکت ادمین با دسترسی ادمین در قسمت http configuration برای تک تک یوزرها میشه دستورات htaccess رو برای ngnix نوشت که تفاوت هایی داره

چه سامانه ای و چه وبسروری، الان جا داره که بگم از اینکه عمرم رو پای تو گذاشتم apache از خودم خجالت می کشم با اینکه سرعت بالایی داری ولی بالا و پایینت شدیده. نتونستی خودت رو آماده مبارزه با سختی ها کنی. از تو گذشتم آپاچی ولی nginx مثل یک آدم پخته منابع را درست تقسیم میکنه و باعث میشه هنگ نکنید، کم نیارید.

از تو بخاطر همه خوبیهات ممنونیم .

 

 

 

 

نوشتن دیدگاه