Sida 1 av 2

Segt med PHP...

Postat: 11 augusti 2009, 20:30:01
av ElectricMan
Tycker att det har börjat gå segt för PHP filer att ladda på min server (eller jag tror inte att det har blivit segt, kan ha varit det hela tiden bara att jag har börjat uppmärksamma det nu...).
Testa bara sidan: http://www.nisseselektronik.se
När någon laddar en PHP + MySQL sida så belastas båda CPU'erna på servern till max. Tycker inte att det borde ske då det är 2st 550 MHz processorer.
Jag kör Windows 2003 Server på den. 512MB RAM minne.
Mer info finns här: http://www.nisseselektronik.se/phpsysinfo



Vad kan jag göra åt det? Och kom inte med förslag att jag ska byta till Debian eller *unix. Det kommer inte att hända igen...
Ganska irriterande när det tar sån tid att ladda en sida från den...

Re: Segt med PHP...

Postat: 11 augusti 2009, 20:37:29
av Gildebrand
Det kan inte vara så att det är SQL-servern som går på högvarv? Kolla det först, och om det är det, så får du skapa ett index för de vanligaste frågorna

Re: Segt med PHP...

Postat: 11 augusti 2009, 20:49:00
av ElectricMan
Det verkar vara det..
http://www.nisseselektronik.se/phpinfo.php

Går ju skitfort. Får se hur jag löser detta. Tips mottages gärna! :)

Re: Segt med PHP...

Postat: 11 augusti 2009, 21:03:06
av Gildebrand
Om du menar att det verkar vara SQL-servern som går på knäna så är lösningen ett index. Ett index är en "lista" med färdiga svar på de vanligaste frågorna servern får.

Re: Segt med PHP...

Postat: 11 augusti 2009, 21:51:34
av ElectricMan
Okej. Håller på att uppgradera PHP och MySql till senaste versionen nu, får se hur det går. Annars får det bli din variant Gildebrand...

Re: Segt med PHP...

Postat: 12 augusti 2009, 01:25:44
av sodjan
"annars" ? :-) Korrekt databas design måste du alltid ha, det
finns inga genvägar och det är sannolikt inget som en enkel uppgradering
kan göra något åt. Antingen får du med kunskap om hur din databas "körs"
fixa det direkt, eller så kanske det finns något verktyg för att se hur mycket
"table scans" (ett av de vanligaste tecknen på saknat index) den utför. Jag
vet inte hur verktygen i MySQL ser ut, men så här ser motsvarande information
ut i en annan databas produkt. Första bilden visar en överblick där man ser
antalet lästa records och där "sequential scan" och raden under igentligen
visar att något inte är helt optimalt. Den andra bilden visar vilka tabeller
som är berörda. Som sagt, MySQL borde väl ha något liknande.

Hm, jag borde kanske kolla hur det som kallas "Table1" körs, det ser inte
helt optimalt ut... :-)

Kod: Markera allt

Node: xxxx (1/1/1)     Oracle Rdb V7.2-120 Perf. Monitor 12-AUG-2009 01:07:09.33
Rate: 3.00 Seconds             Record Statistics         Elapsed: 22 14:56:59.14
Page: 1 of 1             DISK:<DIR.DIR>MYDB.RDB;5                   Mode: Online
────────────────────────────────────────────────────────────────────────────────
statistic.........      rate.per.second............. total....... average......
name..............      max..... cur..... avg....... count....... per.trans....
record fetched               172        0       74.9    146513702          33.9
  fragmented                   8        0        8.8     17333160           4.0
record stored                  0        0        0.5      1037860           0.2
  fragmented                   0        0        0.0            0           0.0
record erased                  0        0        0.4       950074           0.2
  fragmented                   0        0        0.0        20008           0.0
sequential scan                0        0        0.0        15398           0.0
  record fetched               7        0        7.5     14695733           3.4

Kod: Markera allt

Node: xxxx (1/1/1)     Oracle Rdb V7.2-120 Perf. Monitor 12-AUG-2009 01:13:25.49
Rate: 3.00 Seconds       Logical Area Overview (Tables   Elapsed: 22 15:03:15.29
Page: 1 of 6             DISK:<DIR.DIR>MYDB.RDB;5                   Mode: Online
────────────────────────────────────────────────────────────────────────────────
Logical.Area.Name... record fetch sequential s record fetch record store CurTot
Table1                    9394606        11851      7231212         2541
Table2                    5828057         1234      2942023          278
Table3                    6184169           28      1135512        43390
Table4                    3563204           42      1023148           53
Table5                    1661762           20       828317         1508
Table6                    1738214          361       579122       580005
Table7                     310441           36       281972          160
Table8                     263731           64       260367           17
Sen kan jag tycka att din första sida är lite "överlastad". När jag laddade den första
gången så var det mest bilderna som tog tid. Kommer de också från databasen ?

Re: Segt med PHP...

Postat: 12 augusti 2009, 11:22:45
av Gildebrand
Jag tror att man brukar kunna se i hanteraren för mySql hur lång tid en fråga tar att köra. Kolla efter något sånt. Om det är flera sekunder där så vet du ju vad problemet är.

Re: Segt med PHP...

Postat: 12 augusti 2009, 11:24:28
av sodjan
Tiden kanske ger en indikation var man ska fortsätta att leta, men
enbart tiden i sig säger ju ingenting om *vad* problemet är.

Re: Segt med PHP...

Postat: 12 augusti 2009, 12:20:08
av mrfrenzy
Det går att se massor av statistik, och går även att få alla långsamma queries loggade till en fil. Om du söker på "optimizing mysql" så hittar du hundratals guider på området, bara ta valfri och följa så har du snart lärt dig det grundläggande.

Re: Segt med PHP...

Postat: 15 augusti 2009, 17:32:53
av ElectricMan
Har nu installerat om MySQL, Apache och PHP utan bättre resultat. Testade även att installera en ny Wordpress "blog"
http://www.nisseselektronik.se/wptest/

Dock fortfarande utan bättre resultat.. (CPU aktiviteten går upp till 100% fortfarande)
För inte kan man behöva fixa databasen på en helt ny installation? Eller?

Re: Segt med PHP...

Postat: 15 augusti 2009, 18:32:33
av Gildebrand
Databasstrukturen är ju densamma. Det är den du ska fixa till och indexera, inte uppdatera databashanteraren mySql, även om det kan hjälpa lite grann.

Re: Segt med PHP...

Postat: 15 augusti 2009, 19:02:00
av ElectricMan
Ok, kan du förklara lite hur jag kan göra det? :)

Re: Segt med PHP...

Postat: 15 augusti 2009, 20:28:25
av Gildebrand
Fråga Google.

Men du kan ju visa hur din databasstruktur ser ut idag. Men lättast är nog att skapa index för vanligaste frågorna. Då kan du också ställa in så att den uppdaterar indexen regelbundet.

Re: Segt med PHP...

Postat: 15 augusti 2009, 20:30:19
av ElectricMan
Efter mera felsökning har jag kommit fram till att det är httpd.exe (apache) som drar all CPU aktivitet när en sida laddas.
Nåt tips på vad jag kan göra åt det?
Har testat http://apache2triad.net/forums/archive/ ... d.exe.html
Dock utan resultat.. :(

Re: Segt med PHP...

Postat: 16 augusti 2009, 11:33:05
av bos
Du har i samtliga dina inlägg utelämnat versionsnummer på de produkter du använder, bortsett BillOS 2003.

Vad är meningen med att hymla om dessa? Det underlättar liksom att få veta vad du kör. Gissningsleken har iallafall jag tröttnat på för flera decennier sedan.