افزایش سرعت برنامه‌های php

افزایش سرعت برنامه‌های php

گروه آموزشی مجموعه تدبیر

phpچگونه کار می‌کند: هرگاه مفسر php برنامه‌ای را تفسیر می‌کند هر دستور را به opcodes تبدیل می‌کند و این کد را اجرا می‌کند. عملیاتی که در هنگام اجرای یک کد php انجام می‌شود به صورت خلاصه به این شکل است:

آپاچی (و یا سایر برنامه‌ها) کد php را برای اجرا به مفسر می‌دهند مفسر پس از خواندن کد، کد را تفسیر می‌کند و خروجی تولید می‌کند که tokens نامیده می‌شود سپس tokens را کامپایل می‌کند و خروجی opcodes را که خروجی نهایی است تولید می‌کند. و در نهایت این خروجی را اجرا می‌کند.

نکته: opcodes با زبان ماشین و یا Machine code متفاوت است. زبان ماشین وابسته به سخت‌افزار است و مستقیما روی سخت‌افزار اجرا می‌شود اما opcode غیر وابسته با سخت‌افزار است و بوسیله مفسر php اجرا می‌شود.

مشکل کجاست: با هر بار نمایش یک صفحه وب پروسه تفسیر کد php به کد opcode بوسیله مفسر php انجام می‌شود در نتیجه این عملیات تکراری علاوه بر مصرف منابع سخت‌افزاری سرعت اجرای صفحات را کم می‌کند.

راه‌حل: برای افزایش سرعت اجرای کد‌های php می‌توانیم یکبار کد php را تفسیر کنیم و خروجی opcode حاصله را کش کنیم و با هر بار درخواست مجدد صفحه opcode کش شده را اجرا کنیم.

با استفاده از برنامه‌های زیر می‌توان  opcode را کش کرد و در نتیجه سرعت اجرای کد php را افزایش داد.

  1. برنامه APC که خلاصه شده (Alternative PHP Cache) است.
  2. برنامه MMCache که با نام Turck MMCache نیز شناخته می‌شود.
  3. برنامه XCache .
  4. برنامه eAccelerator.
  5. و بلاخره برنامه تجاری zend.

‫XCache در حالت mod_php و FastCGI بدون مشکل کار می‌کند اما CGI و CLI را پشتیبانی نمی‌کند. در صورت تنظیم مناسب سرعت اجرای کدهای پی‌اچ‌پی را تا پنج برابر افزایش می‌هد.

راهنمای نصب xcache در سنت‌اواس و php5:

آخرین نسخه xcache را از سایت گیت‌هاب دانلود می‌کنیم.

فایل را از حالت فشرده خارج می‌کنیم.

ابزارهای لازم برای کامپایل و نصب برنامه را نصب می‌کنیم.

در نهایت بسته را کانفیگ، کامپایل و نصب می‌کنیم.

فایل تنظیمات را از مسیر جاری به ‎/etc/php.d کپی می‌کنیم.

فایل تنظیمات را باز کنید و تغییرات زیر را در فایل انجام دهید.

نام کاربری را از admin به نام کاربری مورد نظر خود تغییر دهید.

در خطر فرمان دستور زیر را اجرا کنید و خروجی را در خطxcache.admin.pass قرار دهید. ‏(pass را با پسورد خود جایگزین کنید).

دستور زیر را در خط فرمان سرور اجرا کنید و خروجی را در قسمت xcache.count بنویسید.

فایل تنظیمات نمونه:

سرویس آپاچی را ری‌استارت می‌کنیم.

چنانه نصب xcache به درستی انجام شده باشد با اجرای دستور php -v باید پیام زیر نمایش داده شود.

تست:

اما آیا پس از نصب xcache سرعت اجرای اسکریپت‌های پی‌اچ‌پی واقعا افزایش یافته است؟ برای پاسخ به این سئوال سرعت اجرای صفحات را با استفاده از برنامه ab بررسی می‌کنیم.

نکته: برنامه ab که به نام Apache benchmark نیز شناخته می‌شود. ابزاری برای بررسی و تست وب‌سرور آپاچی است.

روی سرور وردپرس را با تنظیمات پیش فرض نصب می‌کنیم. مسیر نصب وردپرس به شکل زیر خواهد بود.

تست سرور در حالت فعال بودن xcache:

از سرور دیگری برنامه ab را به شکل زیر اجرا می‌کنیم. 

خروجی برنامه به شکل زیر است.

تست سرور در حالت غیر فعال بودن xcache:

فایل تنظیم xcache را با دستور زیر به دایرکتوری /root منتقل می‌کنیم. (با حذف فایل تنظیمات xcache غیر فعال می‌شود.)

آپاچی را ری‌استارت می‌کنیم.

سپس مجدا دستور زیر را در یک سرور اجرا می‌کنیم.

خروجی به این صورت است.

استفاده از xcache سرعت اجرای صفحه‌ها را تقریبا به دو برابر افزایش می‌دهد.