Lindsay Skrevet 16. september 2008 Del Skrevet 16. september 2008 Jeg opplever att fra jeg klikker submit til det faktisk har kommet i databasen så kan det ta opp til 10-15 sekunder.Dette skjer bare noen ganger ikke alltid,mitt oppsett er en webserver og en seperat MySQL server.Jeg har sjekket hva slags prossseser som går på mine linux servere også men kan ikke finne det ut.Jeg kjører ubuntu server 8.04 med minimalt av programmer på de så den feilkilden er utelatt.Kjører også 100Mbps nettverk foreløpig med en Zywall5 som router/firewall så den skal takle dette må jeg tro. Kan det være nettverket som er feilkilden? Lenke til kommentar
terjeelde Skrevet 16. september 2008 Del Skrevet 16. september 2008 Kan det være nettverket som er feilkilden? Jeg tipper DNS. Sansynligvis reverse-lookup. Lenke til kommentar
Manfred Skrevet 17. september 2008 Del Skrevet 17. september 2008 Du har ikke satt opp apache-serveren din til å gjøre hostname lookup, eller hva det heter da? Da vil den bruke litt tid på å resolve hostnamet ditt før det skjer noe annet. Lenke til kommentar
kaffenils Skrevet 17. september 2008 Del Skrevet 17. september 2008 Feilen er at du bruker MySql. Punktum! Men fra spøk til alvor; Hvilken databasemotor er det du benytter? MyIsam eller InnoDb? Er det alltid tregt, eller hender det at det går "fort" (<1 sec). Hvis det alltid er tregt så ville jeg kjørt et SQL-trace på databaseserveren for å se hva som skjer og evt. hva som tar tid. Hvordan dette gjøres i MySql vet jeg dessverre ikke. Evt. så kan du jo debugge for å finne ut hva som tar tid (åpne connection, ekeskvere INSERT statemenent etc) hvis denne tregheten alltid er der. Lenke til kommentar
terjeelde Skrevet 17. september 2008 Del Skrevet 17. september 2008 Feilen er at du bruker MySql. Punktum! Er litt enig der. Vil på det sterkeste anbefale at du vurderer PostgreSQL. Men fra spøk til alvor; Hvilken databasemotor er det du benytter? MyIsam eller InnoDb? Er faktisk ett veldig godt poeng. Jeg er ikke helt sikker på hvordan MySQL serialiserer og isolerer transaksjoner med InnoDB (MyISAM har ingen). Det kan tenkes at data dukker opp i databasen med en gang, men at det du bruker for å snakke med databasen har en optimalisering, som prøver å gjøre flere endringer pr. transkasjon, og bare av og til kjører commit, eller noe deromkring. Lurer litt på om du kan gi litt flere detaljer om akkurat hva som skjer når. Er det slik at du klikker på linken, så tar det 10-15 sekunder før du får opp neste side, og data er da i databasen? Eller får du opp siden med en gang, men det tar likevel tid før data kommer i databasen? Skulle også gjerne likt å vite litt mer om webserveren, hvilke språk og biblioteker du bruker. Er det PHP i Apache? Er det CGI? Lenke til kommentar
kaffenils Skrevet 17. september 2008 Del Skrevet 17. september 2008 Er faktisk ett veldig godt poeng. Jeg er ikke helt sikker på hvordan MySQL serialiserer og isolerer transaksjoner med InnoDB (MyISAM har ingen). Jeg tenkte mer på at MyIsam kun opererer med table level locking, med alle de ulemper det fører til i et OLTP system. Lenke til kommentar
Lindsay Skrevet 17. september 2008 Forfatter Del Skrevet 17. september 2008 (endret) Feilen er at du bruker MySql. Punktum! Er litt enig der. Vil på det sterkeste anbefale at du vurderer PostgreSQL. Men fra spøk til alvor; Hvilken databasemotor er det du benytter? MyIsam eller InnoDb? Er faktisk ett veldig godt poeng. Jeg er ikke helt sikker på hvordan MySQL serialiserer og isolerer transaksjoner med InnoDB (MyISAM har ingen). Det kan tenkes at data dukker opp i databasen med en gang, men at det du bruker for å snakke med databasen har en optimalisering, som prøver å gjøre flere endringer pr. transkasjon, og bare av og til kjører commit, eller noe deromkring. Lurer litt på om du kan gi litt flere detaljer om akkurat hva som skjer når. Er det slik at du klikker på linken, så tar det 10-15 sekunder før du får opp neste side, og data er da i databasen? Eller får du opp siden med en gang, men det tar likevel tid før data kommer i databasen? Skulle også gjerne likt å vite litt mer om webserveren, hvilke språk og biblioteker du bruker. Er det PHP i Apache? Er det CGI? Prøver å svare så godt jeg kan da og her er de. 1.sidene på forum kommer opp rimelig raskt Time : 0.16s-: 0.23 for det meste. 2.Dette skjer bare når jeg poster enkelte ganger og det er ikke hele tiden(drifter en del hobbyforums da) 3.Kjører Apache og PHP5 4.Kjører PLESK for administrasjon av domener og e-mails 5.linje er 50/50 Ditt spørsmål Skulle også gjerne likt å vite litt mer om webserveren, hvilke språk og biblioteker du bruker. Dette må jeg uthøre med en kjenning av meg på dette Er det CGI? Dette må jeg også høre etter om Endret 17. september 2008 av Lindsay Lenke til kommentar
SciFi-Bob Skrevet 18. september 2008 Del Skrevet 18. september 2008 (endret) For å supplere litt, så er tabellene MyIsam, så det burde ikke være noen transaksjoner som holder igjen data. Det er heller ikke snakk om cgi, kun ren php. EDIT: terjeelde: Hva kan reverse dns ha med dette å gjøre? Anser meg som rimelig oppdatert ang. dns, men den tok jeg ikke helt...? -- Hilsen "En bekjent av Lindsay" Endret 18. september 2008 av SciFi-Bob Lenke til kommentar
terjeelde Skrevet 18. september 2008 Del Skrevet 18. september 2008 EDIT: terjeelde: Hva kan reverse dns ha med dette å gjøre? Anser meg som rimelig oppdatert ang. dns, men den tok jeg ikke helt...? Diverse servere (webservere, databaseservere osv osv) kjører gjerne reverselookup når de får en ny forbindelse. Dersom dette er i blocking mode, og DNS reverselookup ikke virker helt bra (flere mulige årsaker), så er det ikke uvanlig at du får en betydelig ventetid før du slipper inn. Sees ofte med f.eks ssh. Dersom MySQL har noe lignende, så er det mulig at databaseserveren tar opp en ny forbindelse mot databasen, men at det tar tid før denne blir skikkelig etablert, fordi MySQL prøver å gjøre reverselookup. Var bare en førstetanke. Nå når vi vet litt mer, så er jeg ikke sikker på om det er det som skjer, men er jo en mulighet at enten apache eller MySQL stopper opp på det litt. Lenke til kommentar
kaffenils Skrevet 19. september 2008 Del Skrevet 19. september 2008 For å supplere litt, så er tabellene MyIsam, så det burde ikke være noen transaksjoner som holder igjen data. Slik jeg leser MySql dokumentasjonen så settes det allikevel en lås på tabellen ved lesing og skriving. Det vil si at ved lesing så blokkeres all skriving (INSERT,UPDATE,DELETE), og mens en skriveoperasjon pågår så kan ikke data leses fra tabellen. Eneste unntaket er hvis MySql INSERTer en rad på slutten av tabellen. Da kan lesing (INSERT) og skriving pågå samtidig. Ref 7.3.3 i dokumenasjonen: The MyISAM storage engine supports concurrent inserts to reduce contention between readers and writers for a given table: If a MyISAM table has no holes in the data file (deleted rows in the middle), inserts can be performed to add rows to the end of the table at the same time that SELECT statements are reading rows from the table. At MyISAM brukes i OLTP systemer (f.eks. et forum) er derfor et mysterium for meg. Lenke til kommentar
terjeelde Skrevet 19. september 2008 Del Skrevet 19. september 2008 At MyISAM brukes i OLTP systemer (f.eks. et forum) er derfor et mysterium for meg. Jeg synes det er enda enklere enn som så: At MyISAM brukes er ett mysterium for meg. Lenke til kommentar
kaffenils Skrevet 19. september 2008 Del Skrevet 19. september 2008 At MyISAM brukes er ett mysterium for meg. Tja, det finnes vel enkelte bruksområder for MyISAM også? F.eks. et read-only system med basic spørringer. Men jeg holder meg heller til RDBMS som gir meg både i pose og sekk. Lenke til kommentar
Lindsay Skrevet 19. september 2008 Forfatter Del Skrevet 19. september 2008 Nå vet jeg ikke hvordan dette kan løses om det er så enkelt som å konvertere MySQL til PostgreSQL da.Uansett er jeg keen på å få en løsning på dette med mitt phpBB forum Lenke til kommentar
terjeelde Skrevet 19. september 2008 Del Skrevet 19. september 2008 Tja, det finnes vel enkelte bruksområder for MyISAM også? F.eks. et read-only system med basic spørringer. Tja, det går ann å bruke MyISAM til det, men skal du skvise ut mest mulig ytelse fra ett read-only system, så er det andre løsninger som gjerne er (mye) bedre, som sqlite eller monetdb. For de fleste er nok valget landet på MySQL mest fordi den er "standard", og godt støttet i forskjellige andre progammer og systemer. Lenke til kommentar
kaffenils Skrevet 19. september 2008 Del Skrevet 19. september 2008 Nå vet jeg ikke hvordan dette kan løses om det er så enkelt som å konvertere MySQL til PostgreSQL da.Uansett er jeg keen på å få en løsning på dette med mitt phpBB forum Du trenger ikke nødvendigvis å bytte til PostgreSql. Det enkleste vil nok være å bytte fra MyISAM til InnoDb. Da vil du få støtte for row-level-locking og dermed vil systemet ha en mye større concurrency-grad. Lenke til kommentar
terjeelde Skrevet 19. september 2008 Del Skrevet 19. september 2008 Nå vet jeg ikke hvordan dette kan løses om det er så enkelt som å konvertere MySQL til PostgreSQL da.Uansett er jeg keen på å få en løsning på dette med mitt phpBB forum Det er nok litt jobb å konvertere til PostgreSQL, men det burde ikke være noe spesielt stort problem. Selv anbefaler jeg absolutt PostgreSQL hvis du er villig til å bruke litt tid på å få til konverteringen. Min erfaring er at det også er lettere å undersøke slike problemer, sjekke ting i dokumentasjonen osv, med PostgreSQL. Hvis du ikke ønsker å gjøre det, så er det nok en mulighet å exportere data fra databasen, og sette den opp på nytt med MySQL, men denne gangen med InnoDB. Jeg er ikke helt sikker på om det vil løse problemet, men det er en god mulighet at det kan løse det, og uansett en lur ting å gjøre, enten det er årsak til problemet eller ikke. Lenke til kommentar
Lindsay Skrevet 19. september 2008 Forfatter Del Skrevet 19. september 2008 (endret) Nå vet jeg ikke hvordan dette kan løses om det er så enkelt som å konvertere MySQL til PostgreSQL da.Uansett er jeg keen på å få en løsning på dette med mitt phpBB forum Du trenger ikke nødvendigvis å bytte til PostgreSql. Det enkleste vil nok være å bytte fra MyISAM til InnoDb. Da vil du få støtte for row-level-locking og dermed vil systemet ha en mye større concurrency-grad. Har noe som heter mysqli på de andre fora men ikke på mitt er det det som er InnoDb? Har dette nå er dette riktig? Database server: MySQL(i) 5.0.51a-3ubuntu5.1 Hos noen så har de tilbakemeldinger om att det fortsatt er tregt (5-10 sekunder) på postinger Endret 19. september 2008 av Lindsay Lenke til kommentar
SciFi-Bob Skrevet 19. september 2008 Del Skrevet 19. september 2008 Nå vet jeg ikke hvordan dette kan løses om det er så enkelt som å konvertere MySQL til PostgreSQL da.Uansett er jeg keen på å få en løsning på dette med mitt phpBB forum Du trenger ikke nødvendigvis å bytte til PostgreSql. Det enkleste vil nok være å bytte fra MyISAM til InnoDb. Da vil du få støtte for row-level-locking og dermed vil systemet ha en mye større concurrency-grad. Har noe som heter mysqli på de andre fora men ikke på mitt er det det som er InnoDb? Har dette nå er dette riktig? Database server: MySQL(i) 5.0.51a-3ubuntu5.1 Hos noen så har de tilbakemeldinger om att det fortsatt er tregt (5-10 sekunder) på postinger Mysqli er bare den objekt orienterte delen av php's MySQL implementasjon, det har ikke noe med selve dataene å gjøre, men mer på programmeringssiden. Vi prøver å gå over til InnoDB på tabellene, og ser hvordan det går. Ellers vil jeg for egen regning si, at det i denne topic var en god del "dette er best, alt annet fungerer ikke" svar, som muligens kunne begrenses litt, uten å sette fingeren mot noen spesifikk... Jeg har selv gode erfaringer med både MySQL, Oracle og PostgreSQL, og det hele kommer også an på hvor stor database du har. Ikke alt løses umiddelbart ved å gå over på en annen DB plattform. Lenke til kommentar
kaffenils Skrevet 20. september 2008 Del Skrevet 20. september 2008 (endret) Ellers vil jeg for egen regning si, at det i denne topic var en god del "dette er best, alt annet fungerer ikke" svar, som muligens kunne begrenses litt, uten å sette fingeren mot noen spesifikk... Jeg har selv gode erfaringer med både MySQL, Oracle og PostgreSQL, og det hele kommer også an på hvor stor database du har. Ikke alt løses umiddelbart ved å gå over på en annen DB plattform. Hva? Nå dikter du opp tullball. Det er vel ingen som har sagt at "dette er best, alt annet er dritt". Det jeg sa er at lockingmodellen i MyISAM er ubrukelig i OLTP systemer. Dessuten er heller ikke MyISAM ACID-compliant, så hvis dataene som ligger i database har noen som helst verdi for deg så bruker du rett og slett ikke MyISAM. Derfor forelo jeg også som løsning å prøve å bytte til InnoDb, som både har transaksjonshåndtering og en bedre lockingmodell. Endret 20. september 2008 av kaffenils Lenke til kommentar
SciFi-Bob Skrevet 20. september 2008 Del Skrevet 20. september 2008 Ellers vil jeg for egen regning si, at det i denne topic var en god del "dette er best, alt annet fungerer ikke" svar, som muligens kunne begrenses litt, uten å sette fingeren mot noen spesifikk... Jeg har selv gode erfaringer med både MySQL, Oracle og PostgreSQL, og det hele kommer også an på hvor stor database du har. Ikke alt løses umiddelbart ved å gå over på en annen DB plattform. Hva? Nå dikter du opp tullball. Det er vel ingen som har sagt at "dette er best, alt annet er dritt". Det jeg sa er at lockingmodellen i MyISAM er ubrukelig i OLTP systemer. Dessuten er heller ikke MyISAM ACID-compliant, så hvis dataene som ligger i database har noen som helst verdi for deg så bruker du rett og slett ikke MyISAM. Derfor forelo jeg også som løsning å prøve å bytte til InnoDb, som både har transaksjonshåndtering og en bedre lockingmodell. Jeg brukte ikke ordet "dritt", ingen har sagt at databasen skal være acid compliant, og jeg kan ikke helt se hvilke utsagn jeg har kommet med som kvalifiserer til å kalles "tulliball". Men la oss ikke sette igang en skittkasting, det fører aldri til noe godt. Det jeg mente var at dette er et online forum, og ikke en online butikk eller lignende, og det er ikke påkrevet med 100% transaksjons sikkerhet, hvis bare forumkoden (phpbb) er skrevet på en ordentlig måte. Du har noen meget gode argumenter for å skifte til InnoDB, og det vil jeg få testet. Det blir permanent hvis det ikke fører til vesentlige ytelses problemer. En av fordelene med MyIsam er jo at den er raskere enn de fleste, derfor er den i bruk her. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå