Avatar billede Slettet bruger
01. december 2006 - 01:25 Der er 13 kommentarer

Langsom connect tid

Jeg har problemer med at mine MySQL databaser tager en evighed om at åbne en forbindelse, når jeg bruger mysql_connect() i PHP. Problemet opstår når der er høj aktivitet på min hjemmeside. Men jeg kan ikke finde fejlen, og jeg er IKKE en nybegynder til php/mysql.

Load average på serveren er ofte under 0.20 når problemerne opstår. Antal åbne forbindelser på port 3306 er oftest under 100.

Output from netstat -an | grep 3306 | wc -l ..
49

Alligevel tager det 5-10 sekunder eller mere at etablere forbindelse til databasen.

Jeg kører Debian Sarge, PHP 4.3.4 og MySQL 4.1.11. Jeg har prøvet at justere diverse variabler i my.cnf i forhold til hvad der foreslåes på mysql.com, uden resultat.
Avatar billede coderdk Praktikant
01. december 2006 - 01:34 #1
Connecter du med IP eller hostname? Prøv at starte mysql med --skip-name-resolve
Avatar billede Slettet bruger
01. december 2006 - 02:26 #2
Jeg connecter med IP. Så er "--skip-name-resolve" vel ligegyldig?
Avatar billede arne_v Ekspert
01. december 2006 - 02:39 #3
--skip-name-resolve

forhindrer så vidt jeg ved server i at slå client op og er derfor helt
uafhængigt af om client bruger adresse eller navn
Avatar billede coderdk Praktikant
01. december 2006 - 02:47 #4
arne_v har ret :)
Avatar billede Slettet bruger
01. december 2006 - 02:56 #5
Ok så må jeg prøve. Men hvordan starter jeg mysql med den indstilling? Jeg skrev måske at jeg ikke var nybegynder, men jeg har altid brugt webmin til at starte og stoppe mysql samt my.cnf til at ændre indstillinger :)
Avatar billede arne_v Ekspert
01. december 2006 - 04:14 #6
my.cnf:

[mysqld]
...
skip-name-resolve
...

burde også gøre det
Avatar billede Slettet bruger
01. december 2006 - 04:27 #7
Tak for det, jeg prøver. Peak-time i morgen aften vil vise om det har hjulpet. Dog fandt jeg dette:

Not sure why it doesn't show up in "SHOW VARIABLES", but one way
to check would be to see whether the hosts in the "Host" column
of "SHOW PROCESSLIST" are shown as IP addresses or hostnames.

Og på mit system vises IP adresser...
Avatar billede Slettet bruger
01. december 2006 - 04:42 #8
Og så igen... dette taler til "din fordel":

http://dev.mysql.com/doc/refman/4.1/en/dns.html
Avatar billede coderdk Praktikant
01. december 2006 - 05:09 #9
Det kan være fordi de hosts der connecter ikke har en reverse dns record...
Avatar billede Slettet bruger
01. december 2006 - 16:39 #10
Hvad betyder det? Og hvordan tjekker jeg det?
Avatar billede coderdk Praktikant
01. december 2006 - 17:15 #11
På linux kan du f.eks. køre en host et.ip.nummer.her (såfremt host er installeret, ellers prøv dig eller nslookup). Optimalt set skal IP'en have et hostname, hostnamet skal resolve til IP'en og IP'en skal have en pointer til hostnamet ;)
Avatar billede coderdk Praktikant
01. december 2006 - 17:15 #12
Det er lettere hvis du bare prøver skip-name-resolve og se om det afhjælper problemet ;)(
Avatar billede Slettet bruger
03. december 2006 - 20:17 #13
Det gjorde det! Jeg takker mange gange :) skriver du et svar?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester