eAccelerator

eAccelerator е един прекрасен механизъм да по забързаме бавното php. Общо взето идеята е елементарна  😆 при изпълнение на php скриптове тая щуротия ги пази до opcode ниво и при следващо извикване ако няма промени пo скрипта се ползва opcode копието. Резултата е по бързо изпълнение по ниско натоварване на сървъра, по малко разхищение на ресурси. Общо взето това е.

Сега да споделя простотията която успях да сътворя. Преди малко по малко от седмица на един сървър обновявах php версията която ползва заради фаталният CVE-2010-4645 бъг. Поднових версията до 5.2.17 където видях, че е поправен. Не ми се рискуваше с 5.3.5 версията, че има разлики и не знам кое как ще сработи , а и най важното беше късно вечерта. Речено сторено. Ъпдейта мина повече от гладко, но след като приключих ми направи впечатление че пъргавостта на сайта падна доста. Но единия от разработчиците ме беше предупредил, че ще тестват нови скриптове и не му обърнах много внимание. Вчера ми се наложи да настройвам едни cron-ове на php и когато ги пуснах видях един доста неприятен надпис, че компилацията ми на eAccelerator-a е за старта версия на php-то ми и с новата не работи ;). Ясно вече всичко е ясно. Набързо прекомпилирах eAccelerator-a и всичко си дойде на мястото по груби наблюдения зареждането на страниците падна двойно като се освободиха ценни мегабайти рам. Като цяло вече поне си направих теста и със сигурност има полза особено при над 200 потребителя online нещата стават доста красноречиви а при 400 😉 Има и други механизми но според тестовете eAccelerator-a е най грамотния избор. Нямам особено време за тестване затова се доверявам на хората 😀

http://www.youtube.com/watch?v=eJarZiMQaKA

14 comments

  1. А eAccelerator на какво е писан?
    Има ли някакви проблеми със сигурността при използването му?
    на мен често м исе гади едно такова вътрешно, ако трябва да слагам приставки, плъгин-и, добавки, надстройки и всякакви темподобни. Колкото повече (мечо Пух 🙂 ) толквоа повече места за пробив. Да не забравяме qmail.

    1. Ами сорсовете гледам са написани на С. Иначе не мисля че има някакви дупки които да отваря повече от самото php 😉 :-D. Въпреки, че като се има на предвид, че е от създателите на lighttpd и го гледах първоначално леко с несигурност, че те с техните memory leak-ове направо избиваха рибата. Иначе има още 2 известни такива кеширащи механизми които – на второ място класират X-Cache и на 3-то APC, които ще взле официално в php6 ама по тестовете не му е много красиво положението. А определно бързодействието на php му е слаб момент и схемата на python за bytecode хавите е грамотно решение и горе доло това правят ти кеширащи механизми. А инсталацията е тривиална phpize && ./configure && make && make install 😉 След това го добавяш в php.ini-то и си свиркаш щастлив :)))

      1. Взема да пробвам, ама нямам сървър с такова натоварване….някакъв генератор на трафик трябва да поизмисля или да потърся

        1. ab е твоя tool 😉 Иначе сървъра дето се говори за него чакаме(надяваме се) да минем 20к уникални скоро стигаме нормално около 15к за ден което е прилично 🙂

  2. Не са едно и две решенията за opcode кеширане.

    Най-популярните примери са:
    – apc
    – xcache
    – zend_optimizer

    Аз лично предпочитам xcache, защото имаш API и можеш да persist-ваш ръчно, т.е мога да го ползвам като storage.

    1. Дам писах за тях, по принцип трябва някои ден да седна да го разчопля повече аз x-cache и да се запозная по надълбоко с функционалноста му. В случая чак от такава функционалност нямаме нужда и общо взето на повечето тестове гледам eAccelerator бие с малко но бие x-cache.

  3. Освен заигравките с опкод кешове има и други заигравки. Правилно кеширане по диска и ползване на memcached ама това обикновенно значи че някой трябва да рита developerite а те са малко мързеливи обикновенно.

    Допълнително да добавим и че опкод кешовете не работят ако се php-то се ползва като CGI (fastcgi)

    1. Сигурен ли си защото си кеширaшe преди с lighttpd и php-то беше точно като fastcgi. А смяната на apache-то с nginx ми беше основна идея за в бъдеще. Мисля че няма да се навият ако ги открехна на memcache точно поради причиние дето изтъкна 😀

      1. За eAccelerator не съм сигурен тъй като не съм го ползвал, но xcache не оказва никакво влияние. Реално … мамка му и че съм идиот … suexec. Добре днес явно ще имам заигравка да видим как се държат опкод кешовете при различни вариации.

        1. ахахахах Тествай и ще чакам резултати и аз тия дни ако ми остане повече време за игра ще дигна една виртуална да видя как се държат apache, lighttpd и nginx с или без opcode кеширания и с различните такива 🙂 За apache 100% има ефект въпроса е с цифрички да се видят 😉

  4. Ох, чувствам се яко дилетант. Най-накрая трябва да седна и да почна да се занимавам с код като хората. Чувствам се доста неловко, щъкайки из графичния админ интерфейс на страницата си. И постоянно едн огласче какъв спец си ти, след като ползваш графичен интерфейс? Дали специалистите са задължително тези, които имат бели букви на черен екран, стартират lynx и ходят из директориите най-много с mc? Надали! Ама май е стереотип!

    1. Защо пък дилетант 🙂 Иначе колко си професионалист не се определя от толкова от туловете които ползваш а от начина по които ги ползваш. Дали браузвам с наутилус или mc каква е разликата въпроса е да ти е удобно конфортно и да вършиш максимално бързо поставените задачи. Точно тези фактори те определят какъв си, да речем някои ламер ако си сложи backtrak това дали ще го направи по голям хахор 😉 Не мисля. Аз съм на принципа обичам да е удобно и ползвма туловете които имам. Отделно живеем за да се учим 😉

Вашият коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *