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ą >>Kas yra AJAX ir kam jis naudojamas – šiame straipsnyje plačiau neaptarinėsime. Verta tik paminėti, kad norėdami savo programas optimizuoti – turite turinį krauti asinchroniškai ir vengti pilno puslapio perkrovimo (aišku jei tai įmanoma). Nesenai aptikau vieną įdomų sprendimą Zend Framework naudojančioms sistemoms.
Skaityti visą >>
Turiu tokią situaciją: interneto tiekėjas duoda mažą greitį Lietuvoje ir dvigubai mažesnį greitį užsienyje. Tačiau turiu serverį kuris turi 100mbps į visur. Taigi serveryje įdiegiame squid
sudo apt-get install squid
SSH konfiguracijoje (debian 5.0: /etc/ssh/sshd_config) nurodome tokius parametrus:
PermitTunnel yes
AllowTcpForwarding yes
GatewayPorts yes
Kai kompanija Google paskelbė, kad uždaro „google wave“ projektą, buvo pasklidusios kalbos, kad „Apache Software Foundation“ perims tolimesnį sistemos vystymą. Neilgai trukus atsidarė puslapis http://www.waveprotocol.org/. Tad nutariau pabandyti ir pasidalinti su jumis įspūdžiais
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.
Šio straipsnio tikslas – papasakoti apie klaidų apdorojimą ir teikiamą naudą.
Dažnas nepatyrės programuotojas klaidų rodymą tiesiog išjungia arba naudoja operatorių @. Tokiu atveju, programavimo procese, nesimato daromos klaidos, pavyzdžiui naudojamas neapibrėžtas kintamasis, naudojamas masyvo elementas kurio nėra ir panašiai. Tokio tipo klaidos gali likti ir nepastebėtos, nes PHP kalboje tokiems atvejams yra taikomos tam tikros taisyklės, pavyzdžiui jei bandome gauti reikšmę iš kintamojo kurio nėra, gausite tuščią eilutę. Dažnas programuotojas to net nežino arba apie tai nesusimąsto. Tad programavimo procesui vykstant, tiesiog būtina įjungti klaidų rodymą.
Skaityti visą >>