جهت تماس با کارشناسان فروش کلیک نمایید
موضوع مقاله :

کارايي وب سرور چيست

شرح : امروزه در دنيا اطلاعات نقش بسيار مهمي دارند و بيشتر اين اطلاعات توسط اينترنت انتقال پيدا مي كنند. متداولترين پروتكلي كه براي انتقال اطلاعات از آن استفاده مي شود، پروتكل HTTP مي باشد. پروتكل HTTP به عنوان پروتكلي سريع، قوي و با باركم بر روي CPU و حافظه سرور طراحي شده . براي جلوگيري از كاهش پيدا كردن كارايي وب بر اثر استفاده بسيار زياد از اين پروتكل، بايد كارايي را بهينه سازي كرد.
دو استراتژي اصلي براي بهينه سازي كارائي وجود دارد:
1- بهينه سازي كارائي وب سرور
2- بهينه سازي كارائي پروتكل HTTP
در اين جا تعدادي از روشهاي بهينه سازي كارائي وب سرور به طور مختصر شرح داده شده است.
ارزيابي كارايي
كارائي وب سرورها به چند عامل بستگي دارد: سخت افزار سرور، پروتكل شبكه، ازدحام، پهناي باند و سخت افزارهاي شبكه،CLIENT ها و...
براي ارزيابي كارائي موارد زير را بايد مورد بررسي قرارداد:
?- تعداد درخواست در ثانيه (RPS)
?- توان عملياتي (THROUGHPUT)
?- زمان رفت و برگشت (Round Trip Time)
?- خطاها
?- RPS
تعداد درخواست در ثانيه برابر است با مقدار درخواستهاي HTTP در هر ثانيه كه سرور مي تواند به آن ها سرويس دهد. اين شامل ايجاد يك اتصال ، سرويس دهي و قطع كردن اتصال مي شود. براي اندازه گيري اين مقدار سرور را بايد با بارهاي مختلفي تحت شرايط مختلف تست كرد. اين تست ها بايد شامل فايلهاي كوچك، متوسط و بزرگ،HTML هاي استاتيك و ديناميك ، API ، CGI و بانكهاي اطلاعاتي باشد. RPS نشان دهنده قابليت اطمينان سرور و سايتهايي كه سرويس مي دهد مي باشد.
?- THROUGHPUT
THROUGHPUT ماكزيمم مقدار داده ايست كه سرور مي تواند در يك زمان خاص از تمام اتصالات موجود بفرستد. اين مقدار به شبكه بين سرويس دهنده و سرويس گيرنده، پهناي باند شبكه، روترها،Gateway ها و… بستگي دارد.
?- RTT
RTT زماني است كه سرور به هر درخواست سرويس گيرنده پاسخ مي دهد. اين زمان از لحظه‌اي كه درخواست فرستاده مي شود تا وقتي كه سرويس داده مي شود محاسبه مي گردد و اگر بيش از يك يا دو ثانيه باشد از نظر كاربر كند به نظر مي رسد. ازدحام در شبكه باعث زياد شدن RTT مي‌شود.
?- خطا
اين مقدار برابر با مقدار خطايي است كه در ثانيه بر اثر مقدار درخواستهاي HTTP گم شده يا درخواستهايي كه سرور نتوانسته به آنها پاسخ دهد بوجود مي آيد و قابليت اطمينان شبكه به آن بستگي دارد.
كارائي چگونه اندازه گيري مي شود
كارائي سرورها را مي توان با داده هاي عملياتي يا تستهاي هوشمند ارزيابي كرد. تحليل داده‌هاي عملياتي شامل بررسي LOG هاي سرور، سيستم عامل سرور و نرم افزار سرور مي‌شود. بنچ مارك(Benchmark) كردن يكي از روشهاي تست هاي كارائي است. بنچ ماركينگ وب سرور در اصل شبيه سازي حالات دنياي واقعي است كه با دادن يك سري داده به يك برنامه يك سري نتايج را حاصل مي كند. به همين دليل هم داده ها و طراحي برنامه بايد بسيار دقيق باشد. سه نكته اصلي را در هنگام طراحي بنچ ماركهاي وب بايد در نظر گرفت. اولين نكته متدهاي HTTP مثل GET، PUT وPOST است. نكته دوم اندازه و تعداد فايلهايي است كه بايد بازيابي شود زيرا به عنوان مثال اگر تعداد آنها كم باشد سرور مي تواند آنها را درCache نگهداري كرده و در نتيجه نتايج درستي بدست نخواهد آمد. سومين مسئله توزيع درخواستهاي سرويس گيرنده در طول زمان است. گاهي اوقات در يك برهه زماني كم به درخواستهاي زيادي بايد سرويس داده شود در صورتيكه در برهه زماني ديگر درخواستهاي كمي وجود دارد. به جز اين سه نكته اصلي به فاكتورهاي ديگري نيز مثل تعداد درخواست كننده هاي سيستم، شبكه‌هاي كند (پر ازدحام ، با پهناي باند كم )، تصاوير، صفحات داراي CGI، API، مسائل امنيتي (مثل شناسايي و رمزگذاري) و… نيز بايد توجه كرد.
روشهاي بهينه سازي كارائي وب
در اينجا روشهاي اصلي بهينه سازي كارائي وب توضيح داده مي شود:
1- استفاده از Standalone Server Daemon به جاي Inetd
سرورهاي Standalone هنگامي كه صدا زده شوندstart (شروع) شده به همه اتصالات سرويس داده و وقتي كه توسط اپراتور از بين برده شوند يا سيستم خاموش شود Terminate (پايان) مي‌شوند. استفاده از Inetd باعث مي شود كه براي سرويس دهي به تعدادي از Port ها گوش داده شود وقتي كه درخواستي درPort 80بوجود آمد، شروع به كار كرده، سرويس را داده و آنگاه پايان مي پذيرد. پروسه آماده سازي و شروع به كار در Inetd زمان قابل توجهي را مي گيرد كه باعث مي شود توان عملياتي تقريبا نصف شود.
2- استفاده از Thread ياProcess Pool به جاي Fork/Exec
در معماري “Process- per-Connection” براي هر اتصال يك پروسه بوجود مي آيد و به دليل اينكه درخواستهاي وب بسيار كوتاه هستند زمان زيادي صرف بوجود آمدن پروسه ميشود. استفاده از Thread يا استخر پروسه ها اين زمانهاي اضافي را بسيار كاهش مي دهد. در روش استفاده از استخر پروسه ها ، هنگامي كه سرور شروع به كار مي كند يك سري پروسه كمكي بي كار به وجود مي آيند كه در هنگام بوجود آمدن هر اتصال مورد استفاده قرار مي‌گيرند. وقتي كه پروسه آزاد ديگري وجود نداشت يك يا يك گروه پروسه كمكي جديد بوجود مي آيند كه با تمام شدن كارشان از بين مي رود. يك روش ديناميك تر براي استخر پروسه ها روشي است كه تعداد پروسه هاي بيكار را مي‌شمارد. هنگامي كه تعداد آنها كمتر از يك مقدار مينيمم از قبل تعريف شده شود پروسه هاي جديدي بوجود مي آيد. وقتي كه تعداد پروسه هاي كمكي بيش از يك حد ماكسيمم شود اضافه ها از بين مي روند. Thread ها سريع تر از پروسه ها هستند و منابع كمتري از سيستم را نيز به خود تخصيص ميدهند. به همين دليل نيز استفاده از Multithreading روش خوبي در پاسخ گويي به درخواستهاي وب است.
3- استفاده از متدهاي HTTPوAPI ها به جاي CGI
استفاده از متدهاي HTTP و اجراي دستورات به عنوان Thread هاي سرور، كارائي بسيار بيشتري از اجراي CGI در يك پروسه جداگانه دارد. استفاده از API در هنگام برقراري ارتباط بين سرور و اسكريپت نياز به تماس با سيستم عامل را از بين مي برد.
4- استفاده از Cacheاينترنتي سلسله مراتبي : Proxy Server
در معماري Cache سلسله مراتبي يك پروكسي سرور براي Cacheكردن و سرويس دادن به اشياء داده استفاده مي‌شود. هنگامي كه Cache درخواست URLي را دريافت كرد در صورتي كه آن را داشت آن را برمي‌گرداند. اگر شيء مورد نظر در Cache نبود يك RPC براي Cache هاي همسايه و Cache هاي سطح پايين تر مي فرستد و همزمان يك درخواست براي Home Site شيء مورد نظر ارسال مي كند شيء را از هر كدام از اين دو كه سريعتر جوا ب دادند گرفته و بر مي‌گرداند. اين روش تاخير و ترافيك را تا حد قابل توجهي كاهش مي دهد. تنها مشكل اين روش صفحات وب ديناميك است كه هميشه بايد داده هاي تازه داشته باشند.
5- استفاده از سيستم هاي توزيع شده با كمكDPR
استفاده از سيستم هاي توزيع شده امروزه يكي از رايج ترين روشهاي بالا بردن كارائي سرورهاي وب است يك روش قديمي براي استفاده از اين سيستم ها داشتن يك نود مركزي است كه همه درخواستها به آن رفته و به سرورهاي مورد نظر متصل مي شوند. روش جديدتري براي استفاده از سيستم هاي توزيع شده وجود دارد كه DPR نام دارد. در اين روش همهHost ها در سرويس دادن و مسير يابي با هم همكاري مي كنند. در روشهاي قديمي به دليل وجود يك نود مركزي بار اصلي روي آن نود قرار مي گرفت و اضافه كردن هر Host بار نود مركزي را افزايش مي‌داد. ولي در روش DPR با اضافه شدن هر Host در اصل يك مسيرياب نيز به سيستم اضافه مي شود و سرعت بسيار بالا مي رود.
6- ساير روشهاي بهينه سازي كارايي وب سرور
به جز روشهايي كه براي بهينه سازي وب سرور به آنها اشاره شد موارد ديگري نيز مي توانند در بهبود كارايي وب سرور موثر باشند. آنها شامل موارد زير مي شوند:
اضافه كردن اندازه Cache و RAM
استفاده از درايوهاي بزرگتر و سريع تر
جلوگيري از استفاده بررسي هاي DNS به صورت عكس
نصب همه قسمتهاي سيستم عامل
اضافه كردن طول صفlisten
افزايش تاخير ارسال دوباره براي سرويس گيرنده هاي كند
و ...
با استفاده از روشهاي فوق مي توان كارائي وب سرور را افزايش داد كه اين باعث بهينه شدن كارائي وب مي‌شود.