SQL-ul şi grijania

Că deja mă disper. Nu ştiu cum naiba tot cade serverul de SQL. Ce naiba, un quad-core cu 8 GB de RAM nu e suficient? Bă, care aveţi 100,000 de porcării pe site care freacă SQL-ul de-l îndoaie? Mai ho, mă! Ce dreq, avem servere mişto şi softuri ca…

1000 de site-uri să fie conectate la SQL şi tot nu face de-astea! Că, la naiba, rulez şi eu SQL-ul pe o maşină virtuală şi nu se simte! Interoghez PostgreSQL şi MySQL, simultan şi n-are nimic. Dar pe ăsta cu 100 de WordPress-uri, 10 Drupal şi 10 joomla îl ia dreq. Ceva nu-i bine! Nu-mi dau seama cum tot cade SQL-ul.

Pfuai ce mă disper. Am rulat Joomla! pe 486 la 25 MHz cu Wiondows 95, PHP, Abyss Web Server şi MySQL, dar pe ditamai serverul ceva nu-i place. Enervaţi-mă numai mult, că de nu-mi activez 10,000 de porcării micuţe de cer SQL de să nu-mi spuneţi mie oaie.

Nu ştiu ce, dar trebuie făcut ceva. Eu nu mai am ce să dezactivez din Joomla! ca să meargă mai repede. Acum 10 ani Yahoo avea toate serverele (pe care a dat milioane de dolari) doar un pic mai performante decât ce avem noi acum şi cu mult mai mult trafic decât noi şi nu păţea de-astea. Sigur şi-a uitat careva vreo opţiune bifată aiurea…

Acum m-am mai calmat.

 

13 Comentarii

  1. Mihai Todor 28 octombrie 2008 la 18:32 - Raspunde

    Din ciclul \”my software doesn\’t have bugs, it just develops random features\”, pot sa zic ca e durere mare cu MySQL-ul asta gogule… Am tras si eu nitel cu el pe la munca… Ce sistem de operare folosesti?

    • Robin Molnar 28 octombrie 2008 la 18:54 - Raspunde

      E pe Linux. Serverele sunt beton pur şi simplu. Dar nu ştiu cum naiba câteodată creşte traficul pe ce ştiu eu ce site-uri de pe server şi ne-omoară şi pe noi, ăştia mici. Şi scuză-mă, dacă un quad-core la 8800 cu 8 GB RAM DDR2 nu face faţă păi eu nu ştiu ce PLM de server pe lumea asta mai poate să facă faţă.

      La mine din SQL se încarcă meniurile (foarte complicat dealtfel, nişte link-uri), blorgoll-ul şi articolele, care după cum sunt cerute, la maxim 15 minute, că am cache-ul activad. Deci la mine merge mai mult partea de webserver decât aia de SQL. Problema apare atunci când trebuie refăcutz cache-ul şi nu are de unde, că nu răspunde SQL…

      Deci de la hosting n-are ce să fie, că ştiu ce servere sunt. Nu ştiu restul ce păzesc.

      • Mihai Todor 28 octombrie 2008 la 20:31 - Raspunde

        Mah, uite, daca zici ca ruleaza mai multe chestii in acelasi timp pe server, tin sa iti spun ca eu acu am avut de-a face cu o baza de date gandita extrem de prost care ruleaza pe un server (ceva dual core cu vreo 4 giga de ram). Tin sa mentionez ca interfata web care apela niste selecturi si inserturi de toata jena reusea sa pape 20% din procesor / user pentru ca mysql-ul trebuia sa refaca niste indecsi fulltext pusi degeaba.

        Serverul saracu nu are nici o vina dar nu are nici resurse infinite 😛

        O solutie ar fi probabil sa va ofere la fiecare cate o masina virtuala. Stiu ca nu e cea mai eficienta solutie, dar nu stiu alta metoda de a partaja resursele pentru ca altfel o sa moara toti cand papa unul mai multe resurse decat ar trebui 😐

        • Robin Molnar 28 octombrie 2008 la 21:04 - Raspunde

          Aici e vorba de faptul că sunt mai multe baze de date. Ştiu sigur că asta de J! 1.5 a fost optimizată până în măduva oaselor prin programul Google Summer of Code. Şi mai ştiu că nu am aplicaţii care folosesc baza de date altfel decât prin intermediul librăriilor din Joomla! Deci eu n-am ce cod să optimizez.

          Insert se întâmplă în doar foarte puţine cazuri la mine: când scriu un articol, când modific parametrii unei extensii şi un singur insert când vine cineva pe pagină, la contor. O incrementare de genul i = i + 1.

          Mai mult, mecanismul de cache face o singură extragere de cod SQL din baza de date, atunci când articolul cerut nu a fost localizat în cache. Deci, practic, pentru articolele care au fost cerute deja, el nu citeşte nimic din SQL, doar incrementează contorul.

          Practic n-am ce să fac să mănânc mai puţine resurse. Că şi aşa majoritatea extensiilor sunt dezactivate.

          Dacă te uiţi atent vezi că, de fapt, contorul de pe pagină nu-şi face refresh la numărul de articole afişate, pentru că se încarcă din cache. Doar când expiră cache-ul valoarea afişată corespunde celei din baza de date. în rest numărul de afişări este un pic mai mare decât cel prezentat.

          Nu ştiu ce, dar ceva se întâmplă…

          • Mihai Todor 28 octombrie 2008 la 21:44 -

            Bre, eu nu vorbeam de site-ul tau ci de celelalte. Daca ruleaza si alte siteuri scrise prost (sau chiar scrise bine) in paralel pe aceeasi masina, neexistand un management strict al resurselor, daca siteul cealalt cere 40% din procesor la un moment dat, iar sistemul nu are de unde sa dea 40%, ii va da cat este disponibil. In momentul acela se pune problema de paralelizare, si nu te gandi la query-uri de sql ci la rularea unui script nenorocit de PHP pentru a returna utilizatorului html-ul cerut din cache… Daca vorbim de SQL, o sa dea time-out-uri la greu in situatia prezentata.

            De asta vorbeam mai sus de masini virtuale. Daca administratorii Serverului ar face o delimitare mai buna a resurselor intre diferitele aplicatii, probabil ar disparea problema.

          • Robin Molnar 28 octombrie 2008 la 21:54 -

            😀 Bre, se vede că eşti inginer, ca şi mine… :woohoo: Ori tu nu explici bine, ori eu, ori invers, nu pricepem.

            La faza cu ce fac alţii nu am de unde să ştiu. La faza cu procesarea paralelă iarăşi nu ştiu ce să spun. Este o funcţie cu prea mulţi parametri iar implementarea practică presupune multe treburi şi multe riscuri, chiar dacă la nivel de teorie este OK…

            Aici e problema: cache-ul pe care nu cred că îl au mulţi!

            La faza cu maşinile virtuale se pot întâmpla nişte treburi de securitate nu prea plăcute…

            După cum vezi, privită doar la modul abstract, problerma pare simplă. În practică, însă, rişti nişte treburi. Dilema este: riscăm un pic de securitate pentru nişte performanţă?

            Gândeşte-te aşa: un fişier de cache web de pe hdd poate conţine orice…

          • Anonim 29 octombrie 2008 la 09:02 -

            Deh, ai si tu dreptate, dar scopul principal e sa mearga treaba. Daca nu merge, ce rost mai are sa iti bati capul cu securitatea 😛

            Stii tu, datele sunt in deplina siguranta doar pe HDD-ul care il tii sub saltea 😛 :)))

          • Mihai Todor 29 octombrie 2008 la 09:12 -

            Blesteme! Tot uit sa ma loghez pe rabla asta de la munca. Pune si tu un warning de genu\’ "ba boule, vezi ca postezi fara sa fii logat, introdu macar un nume!!!". As aprecia mult si te-ar scuti si pe tine de commenturi fara autor 😛

            PS: e ceva dubios ca nu ma lasa sa imi editez chiar toate commenturile scrise de mine… Deci pot sa le editez pe primele 2, dar la al 3-lea nu imi apar butoanele de \”editeaza\” si \”sterge\” :huh:
            Si aseara puteam sa il editez doar pe al doilea sau ceva de genu\’… Very strange.

            PS2: cand editez un comment, nu inlocuieste & # 3 4 ; cu ghilimele 😛

          • Robin Molnar 29 octombrie 2008 la 10:56 -

            :unsure: Am văzut că sunt ceva probleme, de când am făcut update la J! 1.5. :s O să îmi cumpăr o componentă de comentarii profi şi un template beton. 😉 Numai să iau bursa sau ceva… :s

            Cel mai sigure informaţii sunt cele de pe stick-ul de sub frigider… :)):)):))

          • Mihai Todor 29 octombrie 2008 la 13:59 -

            Oh c\’mon… Cum sa dai bani pe asa ceva? 😛

            Eu as sta si as scrie codu\’ de mana 🙂

            Cat de greu poa\’ sa fie? 😛

          • Robin Molnar 29 octombrie 2008 la 15:46 -

            😀 Evident că nu e greu. Dar am văzut la unii o temă făcută exact cum vroiam eu să o fac pentru mine, mă rog, în proporţie de 98%, că are doar 3 coloane iar eu vreau 4. 😀 29 EURO.

            La sistemul de comentarii e mai complicat că o să trebuiască să le fac importul manual, direct din SQL. Dar nu-i problemă. Mă descurc eu… 😀

  2. DeBlog 29 octombrie 2008 la 15:18 - Raspunde

    Sigur sunt niste unii cu wordpressuri in care au activate 15.000 de mizerii gen \”users online\” si statistici care fac query-uri in SQL de dragul de a face

    • Robin Molnar 29 octombrie 2008 la 15:47 - Raspunde

      Se poate, nu zic nu. Oricum nu sunt eu în măsură să acuz pe nimeni. Doar constat cu amărăciune un fapt. :unsure:

Lasa un raspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

Vreau să fiu părtaș la faptă. Poți, de asemenea, să fii părtaș și fără martori.

Acest sit folosește Akismet pentru a reduce spamul. Află cum sunt procesate datele comentariilor tale.