oski225
(Oski225)
19 Sierpień 2010 11:48
#1
Witam,
mam skrypt, który rozpoczyna pobieranie pliku:
header('HTTP/1.1 200 OK');
header('Content-Disposition: ' .
'attachment; filename="' . $fname . '"');
header('Accept-Ranges: bytes');
header('Content-Type: application/x-unknown');
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . $c_length);
$pobrano = readfile($file);
czyli w zasadzie nic trudnego, skrypt działa. Jednakże gdy pod skrypt podłączy się 10-20 osób proces apache2 na serwerze się tak jakby zacina, nie wiem jak to wytłumaczyć. Wchodząc przez przeglądarkę na stronę wszystko wyświetlane jest poprawnie, jednakże gdy chcę pobrać plik przez skrypt strona wiecznie się ładuje i pomaga tylko komenda w konsoli:
/etc/init.d/apache2 restart
Co może być powodem?
ra-v
(ra-v)
20 Sierpień 2010 19:57
#2
Z reguły tak się dzieje przy dużej ilości procesów. Jakie jest obciążenie serwera i jakie zużycie CPU oraz pamięci podczas stresu?
Swoją drogą - jaka to maszyna, fizyczna/wirtualna, jakie parametry, jakie łącze?
oski225
(Oski225)
23 Sierpień 2010 16:30
#3
ra-v:
Z reguły tak się dzieje przy dużej ilości procesów. Jakie jest obciążenie serwera i jakie zużycie CPU oraz pamięci podczas stresu? Swoją drogą - jaka to maszyna, fizyczna/wirtualna, jakie parametry, jakie łącze?
Jest to VPS o następujących parametrach:
Disk Space: 25 GB
Guaranteed RAM: 512 MB
Burstable RAM: 2048 MB
Łącze: 100mbps
W tym najdziwniejsze jest to, że podczas zadyszki użycie ramu wynosi maksymalnie 150mb, do ilości użytych zasobów CPU nie mam dostępu.
Może jakieś optymalizacje Apache mogą pomóc? Albo jakiś inny webserver?
Pozdrawiam
ra-v
(ra-v)
25 Sierpień 2010 22:18
#4
Raczej VPS jest przeciążony lub admin dał jej z mało zasobów lub włączył ograniczenia co do ilości połączeń z bazą/serwerem lub ilości żądań… - w sumie admin powinien wiedzieć co się dzieje i dlaczego.
Ile kont jest na jednym fizycznym serwerze? Czy to płatny serwer? W sumie czy płatny czy nie to masz chyba podane na jakiej fizycznej maszynie się znajdujesz (parametry).
Czy w konsoli/putty poniższe polecenie nic nie pokazuje?
cat /proc/cpuinfo
oski225
(Oski225)
26 Sierpień 2010 21:36
#5
Dostaje wiadomość:
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 37
model name : Intel(R) Core(TM) i5 CPU 650 @ 3.20GHz
stepping : 2
cpu MHz : 3210.074
cache size : 4096 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 2
apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 11
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc ida nonstop_tsc arat pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm
bogomips : 6420.14
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management: [8]
processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 37
model name : Intel(R) Core(TM) i5 CPU 650 @ 3.20GHz
stepping : 2
cpu MHz : 3210.074
cache size : 4096 KB
physical id : 0
siblings : 4
core id : 2
cpu cores : 2
apicid : 4
fpu : yes
fpu_exception : yes
cpuid level : 11
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc ida nonstop_tsc arat pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm
bogomips : 6419.83
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management: [8]
processor : 2
vendor_id : GenuineIntel
cpu family : 6
model : 37
model name : Intel(R) Core(TM) i5 CPU 650 @ 3.20GHz
stepping : 2
cpu MHz : 3210.074
cache size : 4096 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 2
apicid : 1
fpu : yes
fpu_exception : yes
cpuid level : 11
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc ida nonstop_tsc arat pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm
bogomips : 6419.77
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management: [8]
processor : 3
vendor_id : GenuineIntel
cpu family : 6
model : 37
model name : Intel(R) Core(TM) i5 CPU 650 @ 3.20GHz
stepping : 2
cpu MHz : 3210.074
cache size : 4096 KB
physical id : 0
siblings : 4
core id : 2
cpu cores : 2
apicid : 5
fpu : yes
fpu_exception : yes
cpuid level : 11
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc ida nonstop_tsc arat pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm
bogomips : 6419.77
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management: [8]
W każdym razie teraz nie jest źle, ostatnio serwer nie zaliczył żadnej zwiechy.
Aczkolwiek jeśli macie jakieś pomysły, proszę pisać.
Jest to płatny VPS, a nie wiem ile jest maszyn per serwer.
ra-v
(ra-v)
27 Sierpień 2010 22:06
#6
No to jest 2 rdzeniowy 4-wątkowy (wydajność zapewne tak jak przy 2-3 rdzeniach, pamiętamy wątki z P4…), nie jest to żadna rewelacja, zakładając że jest ok. 10 VPSów, 16GB RAM i naturalnie RAID, każdy jest w kilku procentach dociążony przez kilku użytkowników na minute no to bez problemu można go zaciąć choćby przez ograniczenia i dużą ilość procesów.
oski225
(Oski225)
29 Listopad 2010 19:56
#7
Pozwolę sobie odświeżyć, gdyż próbowałem na kilku innych VPS’ach, i na wszystkich jest tak samo…
Może to jest błąd ustawień apache?
ra-v
(ra-v)
2 Grudzień 2010 00:00
#8
Moze zbyt ostra polityka jednoczesnych połączeń itp. Zobacz jakie masz dodatki zabezpieczające przed np. atakami DoS