vendredi 28 janvier 2011

درس (2) مسرعات ال php ما هي وظيفتها ؟ PHP accelerator

بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته

هل ال php بطيئة أو تحتاج لمسرع ؟
وما هي وظيفت تلك المسرعات او المخزنات ( لا أدري الغسم الأنسب لها )

بعدما قمت بالإطلاع علي الدرس السابق لدورة حياة الكويري من الولادة حتي الممات
http://www.swalif.net/softs/swalif45/softs260801/

بالطبع هناك الكثير من التسائلات التي وردت لذهنك فلما لا نسردها سوياً ؟

إذا كانت تعليمة السكول دائما ما تنقل محتواها للذاكرة فلما مع كل زائر ننقل هذا المحتوي من جديد لخانة جديدة خاصة به فقط .. ألا يعد ذلك إستهلاك زائد للذاكرة ؟

حينما تقوم بعمل include لملف به متغير يحمل مصفوفة وليكن ملف اللغة
يتم تحميل المصفوفة بقيمتها للذاكرة

أليس من الثقل التحميل والتفريغ الدائم مع كل زائر

هنا يأتي دور المسرعات
PHP accelerator


فما هي وظيفتها ؟

تعمل مسرعات ال php بنظام التخزين أو ال cache حيث أنها توفر عملية النقل والتفريغ للذاكرة بشكل دائما لتحفظ البيانات التي يحدث عليها ضغط أو طلب كثير overhead والتي يتم بشكل دائم شحنها وتفريغها مع كل طلب request
توفر لك تلك المسرعات دائما بعد تركيبها كإضافة لل php extension إمكانية تحديد حجم من الذاكرة لها فقط لتقوم بإستخدام ذلك الحجم المخصص لها بحفظ تلك البيانات لديه وقذفها حينما يتم علم request للمتصفح ومنع العمليات السابقة لها

يؤدي ذلك بالطبع للمميزات التالية

1-تقليل الحمل الزائد علي المعالج server load
2- يقلل أيضا الجانب المستهلك من الذاكرة
3- يزيد سرعة ال php في التنفيذ والعمل بما نسبته من 2 إلي 10 أضعاف طبقاً للتطبيق script المبرمج ومدي حاجته للكاش ( ذلك بدون أي تدخل من المبرمج ودرسنا اليوم ليس فيه تدخل من قبلنا )


نظرة علي مسرعات ال php

APC
PECL :: Package :: APC

eAccelerator
eAccelerator - Trac

XCache
XCache

Zend Optimizer ( مغلق المصدر )
Zend Guard - Zend Optimizer Overview - Zend.com

Turck MMCache ( هو أصل ال eAccelerator ولم يعد العمل مستمر عليه )
Turck MMCache for PHP - Turck Software St. Petersburg

شرح تركيب ال xcache

إنطلق فوراً لمستضيفك ولا تجعله يتردد في تركيب أحد تلك المسرعات فتركيبه لا يأخذ أكثر من ثواني ويقلل الحمل علي السيرفر بشكل رائع
وعن تجربة شخصية مع ال xcache قل إستهلاك الرامات علي سيرفري من 58% تقريبا لما دون ال 40% هذا مع تقليل اللود بالطبع

دروسنا القادمة سنستخدم فيها ال xcache لهذا قم بتركيبه علي سيرفرك أو تأكد من وجوده أو ركبه علي سيرفرك الشخصي علي حاسوبك لتكن مستعد للدرس بإذن الله

أفتح الشل لديك
أدخل للهوم

كود:
cd /home
أنشئ مجلد وليكن test

كود:
mkdir text
أدخل بداخله

كود:
cd test
أسحب ال xcache

كود:
wget http://xcache.lighttpd.net/pub/Releases/1.2.2/xcache-1.2.2.tar.gz
فك الضغط

كود:
tar -zxf xcache-1.2.2.tar.gz
أدخل لمجلده

كود:
cd xcache-1.2.2
نفذ الأوامر التالية كل علي حدي ( نفذ واحد ثم أنتظر الإنتهاء وهكذا )

كود:
phpize
./configure --enable-xcache
make
su
make install
الأن لننقل ملف الإعدادات لإعدادات ال php.ini
يجب أن تعلم ما هو مسار ملف ال php.ini لديك وسأضعه هنا حسب اللي يكون لدي من لديه cpanel
كود:
cat xcache.ini >> /usr/local/lib/php.ini
الأن نريد تحديد مسار تركيب ال xcache ولتحديده نضع التالي

كود:
cd /usr/local/lib/php/extensions/
ستجد مجلد بالداخل اسمه no-debug-non-zts-xxx طبعا بدل ال xxx تجد أرقام
أنسخ إسم هذا المجلد او اكتبه بشكل جيد لاننا نحتاجه بشدة

الأن أدخل ملف إعدادات ال php.ini لتقم بتحرير الإعدادات لل xcache

كود:
pico /usr/local/lib/php.ini
أنزل للأسفل ستجد الإعدادات الكاملة
أولاً يجب ضبط المسار
ستجد المسار وضع هكذا

كود:
zend_extension = /usr/local/lib/php/extensions/non-debug-non-zts-xxx/xcache.so
طبعا المطلوب منك وضع إسم المجلد non-debug-non-zts-xxx الصحيح اللي نسخته منذ قليل

الأن مع الإعدادات

كود:
xcache.admin.enable_auth = On
خليها off حالياً لأننا نريد الإستفادة من شئ ما وسأشرح لكم فيما بعد كيف تضع حماية علي عرض بيانات الأدمين

كود:
xcache.size  =                0M
الحجم اللي تريد تخصيصه من الذاكرة للكاش طبعا في نظامين للكاش نظام للمتغيرات ونظام للملفات تقريباً ( لست متذكر )
هذا الخاص بالملفات دعنا نضع فيه 32

كود:
xcache.size  =                32M
الأن ضع في هذا الغيار عدد أنوية البروسيسور لديك
كود:
xcache.count =                 1
لو كان معالج ثنائي النواة ضع 2 ولو كان رباعي ضع 4 ولو كان معالجين رباعي ضع 8 إلخ
ولمعرفة عدد الأنوية كان لدي أمر شيل لمعرفة ذلك ولكن للأسف راح مني
أسأل مستضيفك ( المعالجات التي يكون فيها هايبرثريدنج تظهر فيها ضعف الأنوية في لوحة التحكم يعني يكون ثنائي ويظهر في ال whm أنه 4 أنوية )

دع هذه كما هي
كود:
xcache.slots =                8K
خاصة بحجم كل سلوت في الذاكرة

أجعل هذه 7200

كود:
xcache.ttl   =                 7200
وهذه 300
كود:
xcache.gc_interval =           300
كرر العملية مع المتغيرات

كود:
xcache.var_size  =            32M
xcache.var_count =             1
xcache.var_slots =            8K
xcache.var_ttl   =             7200
xcache.var_maxttl   =          14400
xcache.var_gc_interval =     300
الأن أحفظ العمل
ctrl + x
y




أسئلة

كيف أعلم أنه يعمل بنجاح ؟

طبق في الشل

php -v
يظهر لديك في ال extension المركبة ال xcache مع إصدارته
يظهر بالطبع مع الأخرين من الأين كيوب والزيند وغيره

ظهر لي خطأ

- إما أن المسار لملف التشغيل غير صحيح وعليك تحرير المسار ووضع المسار الصحيح
- أو أنك تستخدم مسرع الزيند فالكثير يركبوه ويجب حذفه أولاً قبل تركيب ال xcache لحدوث تعارض
- يجب أن يكون سطر التشغيل لل xcache

كود:
zend_extension = /usr/local/lib/php/extensions/no-debug-non-zts-xxx/xcache.so

موجود أول سطر في ملف php.ini بعد الرأس [zend]
ستجد عندك رؤوس في الصفحة أخرها الرأس zend ستجد أسفلها خيارات ال xcache تحت الرأس [xcache-common]

فلو كان [zend] مركب فيه حاجات خلي سطر التشغيل أول شئ فيه

الأن وللضرورة سنحتاج مجلد الأدمين وهو يظهر لنا كل ما هو مخزن في الذاكرة في صفحات php رائعة
ستجد المجلد موجود في المسار السابق

/home/test/xcache-1.2.2

بإسم admin
أنقله لأي مسار لحساب لديك يكون صالح للفتح من خلال المتصفح يعني لو كان دومينك

Example Web Page
واليوزر له
example

أنقل المجلد هكذا
كود:
mv /home/test/xcache-1.2.2/admin /home/example/public_html/test/
ستجد لديك اللوحة يمكن فتحها بالرابط التالي

http://www.example.com/test/admin/index.php

أستمتع بما في اللوحة
يجب أن تري مع الوقت هناك أشياء تخزن من ملفات ومتغيرات ويمكنك الإطلاع علي قيمتها

كيف أحذف ال xcache ؟

أدخل المسار

كود:
zend_extension = /usr/local/lib/php/extensions/no-debug-non-zts-20060613/xcache.so
أحذف الملف xcache.so

أدخل ملف الإعدادات php.ini
أحذف كل الأسطر الخاصة بإعدادات ال xcache



درسنا القادم بإذن الله كيف نخزن نحن يدوياً بيانات مع هذه البيانات ونحسن برمجيتنا

دعواتك

Aucun commentaire:

Enregistrer un commentaire