astronomus
24.05.2013, 15:38:32
Witam. Nie wiedziałem gdzie najlepiej dopasować ten temat, więc wrzuciłem go do tego ogólnego działu.
A więc mam serwer dedykowany, na nim ręcznie postawione apache + mysql + php i zainstalowany system CMS WordPress.
Parametry serwera:
- Łącze 1Gbit
- Intel Core i5-2300 CPU @ 2.80GHz
- 16GB RAM
- System Windows Server 2008 R2
Myślałem, że na takiej osobnej maszynie nie będę musiał się martwić że coś będzie wolno działać.
I tu się rodzi pytanie o zużycie CPU przez PHP.
Robiąc cokolwiek na stronie, np. wędrując po panelu wordpressa (wiadomo że wtedy wykonują się różne funkcje, zapytania do bazy itp) CPU z 0% skacze do 5-10%. Serwis jest nowy, jestem jedyną osobą on-line. Dla testu postawiłem szybko plugin w wordpressie, w nim Ajax który wykonuje zapytanie PHP co 3 sekundy (funkcja wyświetlająca napis Hello World, nic wielkiego). Coś banalnego, a jednak zużycie CPU tak samo 5-10%. No to otworzyłem tego ajaxa w kilkunastu kartach na moim PC, no i zużycie procesora na dedyku wyniosło aż 50%.
I tu rodzi się wątpliwość. Jakim cudem ja jedyny wykorzystałem tak mocny procesor w połowie? Co będzie gdy na stronie będzie wielu użytkowników korzystających z panelu wordpressa, ajaxa itp? Czy po 2-3 userach serwer mi nie padnie o.O ?
Wydawało mi się że samemu nie zużyję nawet 1% mocy. A może to normalne że httpd.exe wykorzystuje swoją moc, ale przy 1, 5, 500 użytkownikach będzie jednak podobne zużycie? A może jednak coś spieprzyłem w instalacji apache, mysql itp?
Proszę o wyjaśnienie tej kwestii. Pozdrawiam
lobopol
24.05.2013, 17:39:47
Ja widzę 2 opcje:
-beznadziejnie skonfigurowany serwer
-nieoptymalne skrypty
z takimi informacjami mogę udzielić tylko takiej odpowiedzi
ps. na serwer php znacznie lepszy jest linux
astronomus
24.05.2013, 19:26:45
Co masz na myśli mówiąc beznadziejnie? Co mogłem zrobić źle? Ustawienia mysql, apache itp są standardowe po instalacji.
To error log:
Cytat
[Fri May 24 19:21:44 2013] [notice] Apache/2.2.22 (Win32) PHP/5.4.15 configured -- resuming normal operations
[Fri May 24 19:21:44 2013] [notice] Server built: Jan 28 2012 11:16:39
[Fri May 24 19:21:44 2013] [notice] Parent: Created child process 3084
httpd.exe: Could not reliably determine the server's fully qualified domain name, using (tutaj ip) for ServerName
httpd.exe: Could not reliably determine the server's fully qualified domain name, using (tutaj ip) for ServerName
[Fri May 24 19:21:44 2013] [notice] Child 3084: Child process is running
[Fri May 24 19:21:45 2013] [notice] Child 3084: Acquired the start mutex.
[Fri May 24 19:21:45 2013] [notice] Child 3084: Starting 64 worker threads.
[Fri May 24 19:21:46 2013] [notice] Child 3084: Starting thread to listen on port 80.
Coś z tego mogło wpłynąć na takie działanie?
Access log też jest zapisywany, ale w nim nie ma nic szczególnego.
Crozin
24.05.2013, 19:53:16
Cytat
I tu rodzi się wątpliwość. Jakim cudem ja jedyny wykorzystałem tak mocny procesor w połowie? Co będzie gdy na stronie będzie wielu użytkowników korzystających z panelu wordpressa, ajaxa itp? Czy po 2-3 userach serwer mi nie padnie o.O ?
Jeżeli masz zainstalowanego Apache'a, to będziesz miał również zainstalowanego
Apache Benchmarka. Przy jego pomocy możesz bardzo łatwo sprawdzić jak mniej-więcej będzie zachowywał się serwer przy przykładowo 40 użytkownikach online.
Dopiero gdy wyniki tego testu będą niepokojące będzie sens brać się za poprawę konfiguracji.