Skocz do zawartości
kamilo123

Zwiększenie jednoczesnych wątków

Polecane posty

Hej,

 

MAM VPS w OVH cloud ten 4rdzenie i postawiony sklep, który korzysta z integratora z magazynem.

Jak pobieram produkty no to niestety pobiera mi tylko po 1 produkcie, jak skonfigurować tego VPS-a aby np. obsługiwał 20 wątków jednocześnie bo dodawać 10 tyś produktów po 1 no to mu się schodzi trochę.

 

 

PLESK + ubuntu.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Prędzej bym obstawiał, że to po stronie aplikacji, a nie serwera leży problem.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Wg mnie aplikacja pobiera 1 wątkowo dane i dlatego tak powoli idzie. Może skonfiguruj aplikację tak aby np. pobierała wg ustalonych przedziałów dane i wówczas dla każdego przedziału po jednym uruchomieniu aplikacji z paramatrem (przedziałem danych) ? Tylko nie przesadzałbym z ilością uruchomionych apek bo przy 4 rdzeniach raczej nie warto więcej niż 4 uruchomienia równolegle chyba, bo i tak spadnie wydajność.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Twórca skryptu powiedział mi, że to wina serwera, cytując ,, jeżeli serwer nie potrafi dodawać więcej niż 1 wątek to gówno nie serwer''. Co wydaje mi się dziwne serwer ma 4 rdzenie, obciążenie w trakcie dodawania jest znikome. No i nie wiem czy próbuje zrobić ze mnie idiote bo sprzedaje gówniany skrypt czy to rzeczywiście wina konfiguracji serwera.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach


root@:~# cat /proc/cpuinfo
processor : 0
vendor_id : AuthenticAMD
cpu family : 21
model : 0
model name : AMD Opteron(tm) Processor 4386
stepping : 2
microcode : 0x6000829
cpu MHz : 3100.000
cache size : 2048 KB
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl tsc_reliable nonstop_tsc aperfmperf pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 x2apic popcnt aes xsave avx hypervisor lahf_lm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw xop fma4 arat
bogomips : 6200.00
TLB size : 1536 4K pages
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
power management:

processor : 1
vendor_id : AuthenticAMD
cpu family : 21
model : 0
model name : AMD Opteron(tm) Processor 4386
stepping : 2
microcode : 0x6000829
cpu MHz : 3100.000
cache size : 2048 KB
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl tsc_reliable nonstop_tsc aperfmperf pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 x2apic popcnt aes xsave avx hypervisor lahf_lm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw xop fma4 arat
bogomips : 6200.00
TLB size : 1536 4K pages
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
power management:

processor : 2
vendor_id : AuthenticAMD
cpu family : 21
model : 0
model name : AMD Opteron(tm) Processor 4386
stepping : 2
microcode : 0x6000829
cpu MHz : 3100.000
cache size : 2048 KB
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl tsc_reliable nonstop_tsc aperfmperf pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 x2apic popcnt aes xsave avx hypervisor lahf_lm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw xop fma4 arat
bogomips : 6200.00
TLB size : 1536 4K pages
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
power management:

processor : 3
vendor_id : AuthenticAMD
cpu family : 21
model : 0
model name : AMD Opteron(tm) Processor 4386
stepping : 2
microcode : 0x6000829
cpu MHz : 3100.000
cache size : 2048 KB
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl tsc_reliable nonstop_tsc aperfmperf pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 x2apic popcnt aes xsave avx hypervisor lahf_lm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw xop fma4 arat
bogomips : 6200.00
TLB size : 1536 4K pages
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
power management:

 

Edytowano przez kamilo123 (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jeżeli nie chcesz publicznie powiedzieć nic o skrypcie to podaj na PW albo informacje o skrypcie albo dane, pod którymi np. w trybie do odczytu można go obejrzeć. Po kontakcie powiem Ci, czy wina leży po stronie serwera, czy skryptu (jeżeli tak, to przy okazji chętnie powiem co napisać autorowi, żeby nie cwaniaczył na przyszłość) oraz powiem ile by kosztowało u mnie poprawienie problemu. Sama analiza darmowa.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Twórca skryptu powiedział mi, że to wina serwera, cytując ,, jeżeli serwer nie potrafi dodawać więcej niż 1 wątek to gówno nie serwer''. Co wydaje mi się dziwne serwer ma 4 rdzenie, obciążenie w trakcie dodawania jest znikome. No i nie wiem czy próbuje zrobić ze mnie idiote bo sprzedaje gówniany skrypt czy to rzeczywiście wina konfiguracji serwera.

 

Wystarczy odpalić htopa i samemu zobaczyć efekty. Generalnie PHP jest zorientowany na dużą ilość krótkich tasków, a nie na małą ilość długich tasków. To oznacza mniej więcej tyle, że PHP sam w sobie świetnie się skaluje i jest w stanie radzić sobie z ogromną ilością requestów, ale tylko i wyłącznie wtedy, kiedy te requesty same w sobie nie będą zbyt kosztowne.

 

W 99.9% przypadków wolne działanie PHP to wina tylko i wyłącznie skryptu, ale bez analizy nikt Ci tego jasno nie stwierdzi. Po stronie serwera leży tylko i wyłącznie implementacja, a nawet najgorsza z nich (prefork) jest w stanie dla każdego requesta zespawnić osobny proces, który jest w stanie działać z 100% wydajnością pojedynczego rdzenia (czy wątku w przypadku HT) serwera. W przypadku lepszych implementacji (FPM), master jest na tyle sprytny, że bez problemu dynamicznie spawnuje nowych workerów, a każdy request ma podobnie jak w przypadku wcześniej dostęp do 100% mocy rdzenia/wątku.

 

O dziwo, PHP od niedawna wspiera pthreadowe wątki, więc nawet zasobożerne skrypty można przepisać aby były mniej inwazyjne dla pojedynczego rdzenia i wspierały wiele z nich, ale jest to rzadkość i w 99.9% przypadków totalny bezsens, bo głównym obciążeniem dla PHP i jego workerów zawsze powinna być liczba requestów, a nie ich zasobożerność.

 

Z doświadczenia wiem, że spowolnienie PHP z winy serwera jest możliwe tylko i wyłącznie przy wykonywaniu setek, albo i tysięcy requestów PHP, a nie pojedynczego requesta, który wolno parsuje dane. Pewno wina leży w gównianym skrypcie, który jest całkowicie niezoptymalizowany do pracy z większą ilością danych, widziałem już nie raz pseudo ekspertów, którzy pobierali dane tysiącem requestów MySQL zamiast jednym. Dzisiaj nikt już nie zwraca uwagi na jakość, elegancję i wydajność kodu, tylko na to "czy działa". Cholernie mnie to denerwuje.

Edytowano przez Archi (zobacz historię edycji)
  • Upvote 1

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

To zobacz chociaz jak w momencie maksymalnego obciazenia zachowuje sie proces php. Rowniez moge z doswiadczenia potwierdzic to, co napisal Archi.

 

Jak to konkretnie mogę sprawdzić ??

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Dzisiaj nikt już nie zwraca uwagi na jakość, elegancję i wydajność kodu, tylko na to "czy działa". Cholernie mnie to denerwuje.

 

Fajnie to ujales. Szczegolnie robia tak ludzie, ktorzy wykonuja zlecenia. Outsourcing juz jest lepszy, bo gotowy skrypt jest wystawiany dla sporej spolecznosci, ktory sie rozwija lepiej niz np. autorski CMS napisany przez - w dodatku - amatora. <_<

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Pliki skryptu są zakodowane :( nic tam nie da się zobaczyć. (ionCube Loader).

 

Nie zawsze, czasami da się "coś" zobaczyć.

 

Zapraszam na PW z kodem.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się


×