Negalėjau neišbandyti. Taigi serveris: Amazon small instance 1.7 GB memory, 1 EC2 Compute Unit. OS ubuntu 11.10 64bit. Į vieną serverį instaliavau Zend Server Comunity Edition PHP 5.3, į kitą Zend Server Comunity Edition PHP 5.4 (technology preview). Instaliavau magento parduotuvę ver 1.6.2.0 ir sample data ver 1.6.1.0 jokių optimizacijų nedariau, tiesiog švari instaliacija pagal numatytuosius nustatymus. Ant abiejų serverių paleidau anksčiau aprašytą įrankį LoadImpact.com testų konfigūracija: 80 SBU vartotojų per 5 min, scenarijus automatiškai sugeneruotas.
Skaityti visą >>Ar bandėte sau ar užsakovams atsakyti į klausimą „Kiek vartotojų atlaikys svetainė?“ arba „Kokio serverio reikia norint, kad atlaikytų X vartotojų?„. Jei taip – tikriausia žinote, kad vienareikšmiškai atsakyti pakankamai sunku, tam reikia realios aplinkos ir didelio vartotojų kiekio. Nusiperkame kažkokį serverį ir imamės srauto generatoriaus. Dažna klaida yra naudoti kažką panašaus į „ab -kc 10 -t 30 http://blog.mysql.lt/„, nes tai kraus vieną ir tą patį url adresą, taigi niekaip nesukurs realios situacijos (tai skaudžiai patyriau savo kailiu). Į pagalbą gali ateiti vienas iš mano senai rastų servisų https://loadimpact.com
Skaityti visą >>Visi kurie bando išmokti ar tie kurie jau programuoja su PHP ne pirmą dieną manau kartas nuo karto padaro klaidingų ar tiesiog kvailų klaidų rašydami kodą.
Šiame straipsnyje aptarsime 5 mano manymų labiausiai daromas klaidas, o kai kuriems gal tiesiog bus papildomos žinios kaip geriau parašyti kodą ir kodėl rašoma taip, o ne kitaip.
Taigi netemdami į naktį pradėkime.
Skaityti visą >>
Taigi, tęsiame mūsų paieškas aplikacijų monitoringe. Facebook vyrai sugalvojo analogą XDEBUG skirtą būtent production sistemoms – xhprof. Pačio PHP išplėtimo (extension) diegimas nėra sudėtingas, nes galime naudoti pecl repositoriją, kompiliuosite rankomis ar ne – Jūsų pasirinkimas. Nurodžius išplėtimą php.ini faile ir perkrovę PHP procesus iš karto pradedame rinkti informaciją. Yra keletas programėlių kuriomis galime peržiūrėti surinktus duomenis, visai kaip su XDEBUG. Žinoma mūsų tai netenkina, todėl ieškome kaip viską atvaizduoti online. Čia ir prasideda sunkioji dalis.
Visi kas turi/prižiūri savo production serverius aišku stebi serverio apkrovimus, laisvos atminties kiekius, SQL užklausų kiekį ir panašius parametrus. Tačiau pridėkite ranką prie širdies ir pasakykite: ar žinote ką daro jūsų aplikacija tame production serveryje? Ar neįvyksta kokios problemos esant tam tikroms sąlygoms? Manau teigiamai atsakytų nedaugelis. Nesenai išbandžiau Zend Server sistemą ir man patiko, kad galiu sužinoti apie kilusias problemas vienoje ar kitoje vietoje, bet ši sistema turi minusų: nemaža kaina, naudojamas Apache web serveris (mat dabar naudoju Nginx + PHP-FPM). Tie minusai privertė paieškoti alternatyvų. Taigi ir pradedu straipsnių ciklą apie aplikacijų monitoringą. Ciklas bus baigtas kai rasime tai ko ieškome arba kai užges viltis 🙂
Skaityti visą >>Tikriausia kiekvienas PHP programuotojas, kuris yra susidūręs su ilgai vykdomais sunkiais procesais, pastebėjo, kad PHP programa nuolat lėtėja. Itin gerai tai žino Magento integravę žmonės, kai reikia importuoti didelį kiekį prekių iš išorinių šaltinių. Tai įvyksta todėl, kad neefektyviai naudojama operatyvioji atmintinė, kurioje kaupiasi šiukšlės ir trikdo programos darbą su atmintimi, blogiausiu atveju programa nutraukia darbą, nes viršyja numatytą didžiausią atminties kiekį.
Kai kurie tikriausia pagalvojo – Magento… Teisingai! Tikrai opi problema, kuriai atrodo, kad nėra sprendimo. Taigi apie tai ir pakalbėkime.