Projects

Mini TPL project page
    Current version: 1.1
Mini TPL projektna stran
    Trenutna inačica: 1.1

Server optimisation / Optimizacija strežnikov

Wed 10 Dec 2008
In the last few weeks, I was facing a lot of performance issues because of Googlebot. It seems, that it does it's job more than ok, and some level of scaling was needed for the bot too. Ofcourse, figuring out where your traffic comes from is sometimes very hard, especially without the correct tools. What can you do? WRITE THEM! And so I did.
  1. MySQL Traffic Sniffer (tcpdump + wrapper scripts to parse queries out of tcpdump data)
  2. MySQL Traffic Analyzer (query occurance grouped by second / all time)
  3. MySQL Proxy (LUA Query Statistics)
  4. Nginx / Apache / Lighttpd log extract by time utility (from HH:MM to HH:MM am, per minute accuracy)
  5. Log analize utility (Url normalisation, grouping by useragent, excluding static content)
  6. Real time URL traffic (like "top", just for access logs, supporting filters)
  7. Special noindex, nofollow, nosnippet and other headers (SEO)
  8. Googlebot traffic shaper using memcache
Besides the usual "fix expensive sql queries" approach, we went so far, that we could implement a googlebot traffic shaper, limiting googlebot requests per minute (or even lesser interval). In the end, we scaled our setup, so that googlebot now uses a dedicated web server and slave database (read only). The tools will be available sometime in the future, but If you want, until then, you can contact me, and I might give you some of the tools, before they are ready for the public.
V zadnjih tednih smo imeli kar nekaj performančnih težav zaradi Googlebot-a. Očitno dela opravilo za katerega je bil narejen, več kot odlično. Potrebno je bilo nekaj širjenja kapacitet za web cawler. Seveda, ugotoviti od kje prihaja vaš promet, je včasih zelo težko, sploh brez ustreznih orodij. Kaj narediti? Napišite jih! In tako sem tudi storil.
  1. Prisluškovanje MySQL prometu (tcpdump + skripte za dobiti poizvedbe iz tcpdump podatkov)
  2. Analizator MySQL prometa (ponavljanje poizvedb na sekundo / vseh časov)
  3. MySQL Proxy (statistika poizvedb v živo, preko lua skripte)
  4. Nginx, Apache, Ligghttpd - orodje za izrez dela access log datoteke glede na čas (natančnost na minuto)
  5. Analizator log datotek (normaliziranje linkov, grupiranje po browser agentih, izključevanje statičnih vsebin)
  6. Živ pregled log datotek (tako kot "top", samo za access log, podpira filtre)
  7. Posebni noindex, nofollow, nosnippet in drugi headerji (SEO)
  8. Omejevanje Googlebot prometa z uporabo memcache
Poleg standardnega "popravi potrošne SQL poizvedbe" pristopa, sem šel tako daleč, da bi lahko implementiral omejevanje google bota na število requestov znotraj ene minute (interval bi bil lahko tudi manjši). Ker bi s tem zmanjšali količino indeksiranja googlebota smo se odločili raje za širjenje kapacitet. Googlebot zdaj uporablja svoj web server in slave podatkovno bazo (samo branje). Orodja našteta zgoraj bodo na voljo enkrat v prihodnosti. Če želite me lahko tudi kontaktirate in vam jih lahko pošljem pred objavo.

PHP conference 08 / PHP Konferenca 08

Tue 10 Jul 2008
I gave a talk at the first PHP Conference 2008 in Slovenia, on the 5th of july. I talked about open source templating and its advantages and pitfalls when seperating logic and design. In conclusion, speed, size and language syntax matters a lot. I released my own template system, Mini TPL at the same time.

First Slovenian PHP Conference, 5th July, Ljubljana
Predaval sem na prvi PHP Konferenci 2008 v Sloveniji. Konferenca se je odvijala petega julija v Ljubljani. Govoril sem o odprtokodnih sistemih za templating, o njihovih prednostih in pomanjkljivostih pri ločevanju logike in oblike. V zaključku so pomembne stvari hitrost, velikost in sintaksa. Ob času predavanja sem objavil lasten template sistem, Mini TPL.

Prva slovenska PHP Konferenca, 5. julij, Ljubljana

Information / About me

My name is Tit Petrič. I am a software developer from Slovenia. I am 27 years old.
I speak Slovene, English, German and Croatian.
I have extensive knowledge and experience in working with PHP for the last 8 years, I also have extensive experience working with MySQL for more than 5 years. Other experiences include working with memcached, sphinx, sharedanced, nginx and other application servers related to web development.

Informacije / O meni

Moje ime je Tit Petrič. Sem razvijalec programske opreme iz Slovenije. Star sem 27 let. Govorim slovensko, angleško, nemško in hrvaško.
Imam obsežno znanje in izkušnje pri delu s PHP programskim jezikom zadnjih 8 let. Pravtako imam obsežno znanje in več kot 5 let izkušenj pri delu z MySQL podatkovnim strežnikom. Druge izkušnje vključujejo delo z memcached, sphinx, sharedanced, nginx in drugimi aplikacijskimi strežniki v povezavi s spletom.