salut, am un server dell, dual xeon la 2.8 Ghz, cu 2 GB de ram si hdd-s 
scsi care logheaza trafic la clienti in genul unui web trafic monitor.

am pe el rhel 3.3 si mysql 4. din cand in cand am probleme cu el si nu ma 
descurc de nici o culoare:

1. apar tabele corupte din cand in cand. filesystem e ok, nu sunt 
bad-uri pe disk. coruperea tabelelor se pare ca apare in momente de high 
load. cum serverul de mysql este singurul care interactioneaza efectiv cu 
tabelele, nu inteleg ceva: in mod logic, nu ar trebui sa nu se intample 
asta? e vreo problema cu mysql-ul in general sub high load sau cum? 
inteleg sa mearga mai greu, dar de ce sa se ajunga la tabele corupte?

2. logurile: nu le gasesc de loc reliable, cel putin in genul in care le 
poti customiza la apache: in prezent e pus pe:
   log-long-format
   log=/var/log/mysqld_all.log

dar nu vad nicaieri data si ora la care e logat fiecare entry. in slow log 
e si mai rau: data si ora apar numai din cand in cand ("#time: data, ora") 
si totul e logat pe mai multe linii si deci nu e eficient de grep-uit. as 
vrea sa am tot pe o linie: data, ora, query time, sql suery, etc.

am sapat la ei pe site si nu am gasit nimic concret pana acum.

3. mysql-ul este folosit de niste scripturi php rulate din apache. desi la 
apache am pus sa logheze pid-ul fiecarui thread, nu am gasit nici o 
posibilitate de a face legatura intre fiecare intreare din logul de httpd 
cu una sau mai multe intrari in logul de mysql. cum as putea face sa stiu 
din logul de mysql ca query-ul X este resultatul accesului facut de 
threadul httpd cu pid-ul Y? poate loga cumva mysql id-ul conexiunii astfel 
incat si din scripturi sa le pun sa logheze acelasi id si sa pot face 
legatura?

4. cand serverul se misca greu, daca dau `/etc/init.d/httpd stop` poate 
dura si un sfer de ora pana se opreste, timp in care upload-ul urca la 
nivele "astonomice": am vazut si:

       Load Avg 1023: 1 Times(s)

in timpul cat "moare" httpd-ul, nu mai pot face nimic, evident, decat sa 
ma rog sa moara mai repede.

5. dupa ce apare o perioada de slow si restartez httpd si mysql, totul 
merge bine. totusi, incetineala nu apare dinntr-odata, ci se pare ca este 
rezultatul unei acumulari care dureaza o vreme. daca ma uit in loguri la 
ultimele query-uri de mysql inainte de restart, nu e nici una suspeta. am 
incercat chiar si ultimele 200, una cate una si nici una nu a rulat mai 
mult de 1 secunda. totusi in anumite contiditii care nu le gasesc, toate 
incep sa se miste greu de la un moment dat. cum as putea face sa ma prind 
ce cauzeaza acest comportament? am zeci daca nu chiar sute de scripturi in 
php, dezvoltate de diferiti, daca le-as fi scris eu macar stiam unde sa ma 
uit :-)

6. din cauza ca accesul la baza de date e destul de intensiv, chiar si in 
conditii normale, i/o-ul e totdeauna ridicat. totusi nu inteleg din top 
urmatoarele:

CPU states:  cpu    user    nice  system    irq  softirq  iowait    idle
            total   43.2%    0.0%   13.6%   0.0%     2.4%  208.0%  131.2%

cum poate sa fie iowait 208%?! cum poate fi mai mar de 100%? ce sa inteleg 
de aici? (serverul are activat hyperthreading, os-ul vede 4 cpu-uri).

necazul e ca serverul e in alta locatie si nu am access fizic la el. 
trebuie sa fac totul remote. reboot-urile sunt excluse, e server de 
productie. ce alteceva imi mai puteti sugera pe aceasta tema? in materie 
de dba la mysql sunt la inceput si din pacate nu avem un om aici care sa 
fie expert in asa ceva.

merci,ela


--- 
Detalii despre listele noastre de mail: http://www.lug.ro/


Raspunde prin e-mail lui