Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2018-03-19 12:57:28

  Twige - Użytkownik

Twige
Użytkownik
Zarejestrowany: 2017-05-10

php zjada cały procesor - prawdopodobnie wina kodu

hej, mam mały problem, prawodpodobnie gdzieś w kodzie walnąłem bubla i na stronie gdzieś  jest "luka" przez, którą można zajechać cały wirtualny rdzeń.

Jakich logów użyć aby nieco naprowadzić się na to gdzie ten błąd mozę być?

Offline

 

#2  2018-03-19 13:13:20

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: php zjada cały procesor - prawdopodobnie wina kodu

Logowanie szczegółowe do pliku w php.ini najprościej.

Najpierw zdecyduj z resztą, jak masz to PHP skonfigurowane, na jakim serwerze i przez jaki interfejs php.

Np dla php-fpm

Kod:

php_admin_value[error_log] = /var/log/php/php70-magento.scripts.log

w konfigu demona fpm.conf

Ostatnio edytowany przez Jacekalex (2018-03-19 13:17:48)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#3  2018-03-19 13:20:01

  Twige - Użytkownik

Twige
Użytkownik
Zarejestrowany: 2017-05-10

Re: php zjada cały procesor - prawdopodobnie wina kodu

php-fpm

php.ini:

Kod:

http://wklej.org/hash/11f806bdd68/

W logach jedynie mam:

error.log:

Kod:

[19-Mar-2018 13:15:09] NOTICE: fpm is running, pid 9706
[19-Mar-2018 13:15:09] NOTICE: ready to handle connections
[19-Mar-2018 13:15:09] NOTICE: systemd monitor interval set to 10000ms
[19-Mar-2018 13:15:52] WARNING: [pool www] server reached pm.max_children setting (4), consider raising it

serwer to vps z nazwa.pl ale strona generalnie działa spoko nawet przy 100 uzytkownikach, jednakze jeden chyba odkrył alo ktos robi to nieumyślnie jakąś wade w kodzie i wątki wariuja

Offline

 

#4  2018-03-19 13:25:16

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: php zjada cały procesor - prawdopodobnie wina kodu

[quote="http://wklej.org/hash/11f806bdd68/"]; Log errors to specified file. PHP's default behavior is to leave this value
; empty.
; http://php.net/error-log
; Example:
;[b]error_log = php_errors.log[/b]
; Log errors to syslog (Event Log on Windows).
;[b]error_log = syslog[/b][/quote]
W php.ini masz komentarze i sznurki do dokumentacji php.

I przy okazji pierdylion opcji dla logowania specyficznych modułów i intefejsów.

Ostatnio edytowany przez Jacekalex (2018-03-19 13:28:29)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#5  2018-03-19 13:27:07

  Twige - Użytkownik

Twige
Użytkownik
Zarejestrowany: 2017-05-10

Re: php zjada cały procesor - prawdopodobnie wina kodu

wlaczylem je sobie:

php_admin_value[error_log] = /var/log/php7.0/www/error_log.pav.log
php_admin_flag[log_errors] = on

bezpośrednio w pliku konfiguracyjnym użytkownika php

czyli powinienem włączyć je takżę w php.ini żeby w ogole zaczeły działac?

Offline

 

#6  2018-03-19 13:32:06

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: php zjada cały procesor - prawdopodobnie wina kodu

Sam sprawdź, czy loguje.

Ja generalnie w pho.pini ustawiam tylko to, czego nie ustawiam w innych konfigach, bo w miarę aktualizacji php może mieszać paramentry z php.ini i np htaccess, czy php_value Nginxa, i traktować je dosyć przypadkowo.
Wolę w miarę możliwości nie dublować tych samych parametrów w różnych miejscach.


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#7  2018-03-19 13:43:22

  Twige - Użytkownik

Twige
Użytkownik
Zarejestrowany: 2017-05-10

Re: php zjada cały procesor - prawdopodobnie wina kodu

a czym w samej konfiguracji znalazłeś jakiś błąd lub niedopatrzenie? podsyłam jeszcze konfiguracje dla procesu php:

Kod:

[www]
user = www-data
group = www-data
listen = /run/php/php7.0-fpm-www.sock
listen.owner = www-data
listen.group = www-data
php_admin_value[disable_functions] = exec,passthru,shell_exec,system
php_admin_flag[allow_url_fopen] = on
pm = dynamic
pm.max_children = 4
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
chdir = /
slowlog = /var/log/php7.0/www/slow2.log
request_slowlog_timeout = 5s
php_admin_value[error_log] = /var/log/php7.0/www/error_log.pav.log
php_admin_flag[log_errors] = on

ten plik w ogole sie nie tworzy:

php_admin_value[error_log] = /var/log/php7.0/www/error_log.pav.log

Ostatnio edytowany przez Twige (2018-03-19 13:47:51)

Offline

 

#8  2018-03-19 13:49:02

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: php zjada cały procesor - prawdopodobnie wina kodu

Najkrótsze disable_functions jakie w życiu widziałem. ;)

ja mam takie:
   

Kod:

passthru,shell_exec,system,show_source,eval,proc_open,popen,posix_ctermid,posix_getcwd,posix_getegid,posix_geteuid,posix_getgid,posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid,posix_getppid,posix_getpwnam,posix_getpwuid,posix_getrlimit,posix_getsid,posix_getuid,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setuid,posix_times,posix_ttyname,posix_uname,openlog,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,

ten plik w ogole sie nie tworzy:

php_admin_value[error_log] = /var/log/php7.0/www/error_log.pav.log[/quote]
A czy w ogóle ma prawo się stworzyć? (uprawnienia)

Ostatnio edytowany przez Jacekalex (2018-03-19 13:51:28)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#9  2018-03-19 13:51:54

  Twige - Użytkownik

Twige
Użytkownik
Zarejestrowany: 2017-05-10

Re: php zjada cały procesor - prawdopodobnie wina kodu

gdzie mogę poczytać więcej na ten temat? :)

Offline

 

#10  2018-03-19 13:56:35

  Twige - Użytkownik

Twige
Użytkownik
Zarejestrowany: 2017-05-10

Re: php zjada cały procesor - prawdopodobnie wina kodu

[quote=Jacekalex]Najkrótsze disable_functions jakie w życiu widziałem. ;)

php_admin_value[error_log] = /var/log/php7.0/www/error_log.pav.log[/quote]
A czy w ogóle ma prawo się stworzyć? (uprawnienia)[/quote]
katalog php7.0 i wszystko pod nim ma wlaściciela www czyli użytkownika, który odpala proces php dla tej strony

Offline

 

#11  2018-03-19 14:03:38

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: php zjada cały procesor - prawdopodobnie wina kodu

PHP nie jest czasem obcięty apparmorem?
W logach demona nie ma info, dlaczego nie może tego pliku założyć?

Poza tym to obciążenie występuje od razu po włączeniu/restarcie php, czy jest wywoływane z zewnątrz - wywołaniem GET lub POST?

Co tam masz w ogóle za skrypty?

Może przez jakaś podatność w WP czy błąd w konfiguracji krasnoludki zrobiły Ci kopalnię Monero na VPSie?
To ostatnio jest dosyć modne.

PS:
Najmniejszy kurpdupel z VPSów Nazwy, wziąłem go do zabawy (procesy PHP i Nginx):
https://s10.postimg.org/kwb24rak9/VPS.png
i nawet jakoś chodzi.

Ostatnio edytowany przez Jacekalex (2018-03-19 14:16:05)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#12  2018-03-19 14:11:52

  Twige - Użytkownik

Twige
Użytkownik
Zarejestrowany: 2017-05-10

Re: php zjada cały procesor - prawdopodobnie wina kodu

plik już się twrzy, niedopatrzyłem jednje rzeczy związanej wlasnie z upr

apparmoru nie uzywam


Obciążenie występuja na pewno z zewnątrz i wynika z kodu php - generalnie kiedy obiciążenie jest ogromne i wylacze a nastepnie wlacze php od razu wzrasta do 100%

teraz jest spokojnie ale za 30 minut znowu może być wrost do 100%, zauwazylem ze co jakis czas obciążenie wzrasta do 20 - 30% ale na sekunde i od razu opada
więc to musi byc kwestia php, a ja nie moge namierzyc przyczyny


slowlog pokazuje zaedwie:

Kod:

[19-Mar-2018 13:13:38]  [pool www] pid 9640
script_filename = /home/www/wp-cron.php
[0x00007f0daa813bb0] curl_exec() /home/www/wp-includes/Requests/Transport/cURL.php:162
[0x00007f0daa813ae0] request() /home/www/wp-includes/class-requests.php:379
[0x00007f0daa8139d0] request() /home/www/wp-includes/class-http.php:371
[0x00007f0daa813830] request() /home/www/wp-includes/class-http.php:612
[0x00007f0daa813770] get() /home/www/wp-includes/http.php:170
[0x00007f0daa8136c0] wp_remote_get() /home/www/assets/plugins/wp-fastest-cache/wpFastestCache.php:1483
[0x00007f0daa813610] wpfc_remote_get() /home/www/assets/plugins/wp-fastest-cache/wpFastestCache.php:1433
[0x00007f0daa8133f0] create_preload_cache() /home/www/wp-includes/class-wp-hook.php:298
[0x00007f0daa813300] apply_filters() /home/www/wp-includes/class-wp-hook.php:323
[0x00007f0daa813280] do_action() /home/www/wp-includes/plugin.php:515
[0x00007f0daa8131a0] do_action_ref_array() /home/www/wp-cron.php:117

log fpm:

Kod:

[19-Mar-2018 13:15:09] NOTICE: fpm is running, pid 9706
[19-Mar-2018 13:15:09] NOTICE: ready to handle connections
[19-Mar-2018 13:15:09] NOTICE: systemd monitor interval set to 10000ms
[19-Mar-2018 13:15:52] WARNING: [pool www] server reached pm.max_children setting (4), consider raising it
[19-Mar-2018 13:22:15] NOTICE: Terminating ...
[19-Mar-2018 13:22:15] NOTICE: exiting, bye-bye!
[19-Mar-2018 13:22:15] NOTICE: fpm is running, pid 9780
[19-Mar-2018 13:22:15] NOTICE: ready to handle connections
[19-Mar-2018 13:22:15] NOTICE: systemd monitor interval set to 10000ms
[19-Mar-2018 13:29:02] NOTICE: Terminating ...
[19-Mar-2018 13:29:02] NOTICE: exiting, bye-bye!
[19-Mar-2018 13:29:02] NOTICE: fpm is running, pid 9849
[19-Mar-2018 13:29:02] NOTICE: ready to handle connections
[19-Mar-2018 13:29:02] NOTICE: systemd monitor interval set to 10000ms
[19-Mar-2018 13:37:30] NOTICE: Terminating ...
[19-Mar-2018 13:37:30] NOTICE: exiting, bye-bye!
[19-Mar-2018 13:37:30] NOTICE: fpm is running, pid 9912
[19-Mar-2018 13:37:30] NOTICE: ready to handle connections
[19-Mar-2018 13:37:30] NOTICE: systemd monitor interval set to 10000ms
[19-Mar-2018 13:41:46] NOTICE: Terminating ...
[19-Mar-2018 13:41:46] NOTICE: exiting, bye-bye!
[19-Mar-2018 13:41:47] NOTICE: fpm is running, pid 9989
[19-Mar-2018 13:41:47] NOTICE: ready to handle connections
[19-Mar-2018 13:41:47] NOTICE: systemd monitor interval set to 10000ms
[19-Mar-2018 13:42:08] NOTICE: Terminating ...
[19-Mar-2018 13:42:08] NOTICE: exiting, bye-bye!
[19-Mar-2018 13:42:08] NOTICE: fpm is running, pid 10016
[19-Mar-2018 13:42:08] NOTICE: ready to handle connections
[19-Mar-2018 13:42:08] NOTICE: systemd monitor interval set to 10000ms
[19-Mar-2018 13:50:46] WARNING: [pool www] server reached pm.max_children setting (4), consider raising it
[19-Mar-2018 13:52:33] NOTICE: Terminating ...
[19-Mar-2018 13:52:33] NOTICE: exiting, bye-bye!
[19-Mar-2018 13:52:33] NOTICE: fpm is running, pid 10075
[19-Mar-2018 13:52:33] NOTICE: ready to handle connections
[19-Mar-2018 13:52:33] NOTICE: systemd monitor interval set to 10000ms
[19-Mar-2018 14:00:43] NOTICE: Terminating ...
[19-Mar-2018 14:00:43] NOTICE: exiting, bye-bye!
[19-Mar-2018 14:00:43] NOTICE: fpm is running, pid 10152
[19-Mar-2018 14:00:43] NOTICE: ready to handle connections
[19-Mar-2018 14:00:43] NOTICE: systemd monitor interval set to 10000ms

error_log:

Kod:

[19-Mar-2018 13:00:18 UTC] PHP Fatal error:  Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes) in /home/www/wp-includes/meta.php on line 841
[19-Mar-2018 13:00:51 UTC] PHP Fatal error:  Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes) in /home/www/wp-includes/meta.php on line 841
[19-Mar-2018 13:01:59 UTC] PHP Fatal error:  Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes) in /home/www/wp-includes/meta.php on line 841
[19-Mar-2018 13:08:43 UTC] PHP Warning:  Invalid argument supplied for foreach() in /home/www/assets/back/single.php on line 25

///////////

kopalnia monero na pewno nie, jestem w 100% przekonany że to kwestia błędu w php

Ostatnio edytowany przez Twige (2018-03-19 14:12:43)

Offline

 

#13  2018-03-19 14:18:47

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: php zjada cały procesor - prawdopodobnie wina kodu

Która to wersja WP?

open_basedir dla WP ustawiłeś?

Kod:

[19-Mar-2018 13:08:43 UTC] PHP Warning:  Invalid argument supplied for foreach() in /home/www/assets/back/single.php on line 25

Co to w ogóle jest?


Kod:

[19-Mar-2018 13:00:18 UTC] PHP Fatal error:  Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes) in /home/www/wp-includes/meta.php on line 841

Tutaj brakuje pamięci, zwiększ mu memory_limit np do 256M

Ostatnio edytowany przez Jacekalex (2018-03-19 14:27:15)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#14  2018-03-19 14:40:15

  Twige - Użytkownik

Twige
Użytkownik
Zarejestrowany: 2017-05-10

Re: php zjada cały procesor - prawdopodobnie wina kodu

ten blad z foreach juz naprawilem ale to byla kwestia tylko warunku, nie milo to przekładu na to ze cpu jest zarzynane

open_basedir - ustawione w vHoście php cgi :
        fastcgi_param PHP_VALUE open_basedir="/home/www";

nie bardzo wiem czy to poprawne

pamięć zwiększona ale to tez nie mialo przekladu na cpu


na wszelki zalcze konfiguracje vHosta:

Kod:

server {
    server_name domena.pl;

    listen 80;
        access_log   /var/log/nginx/htpcguides.com.access.log;
    error_log    /var/log/nginx/htpcguides.com.error.log error;

    root /home/www;

    # Add index.php to the list if you are using PHP
    index index.php;
    
    location / {
        try_files $uri $uri/ /index.php?$args;
               limit_req zone=mylimit;
    }
    
    # Cache static files for as long as possible
    location ~*.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|css|rss|atom|js|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf|cur)$ {
        expires max;
        log_not_found off;
        access_log off;
    }
    
    # Deny public access to wp-config.php
    location ~* wp-config.php {
        deny all;
    }
    
    location ~ \.php$ {
        try_files $uri =404;
        include fastcgi_params;
        fastcgi_pass unix:/run/php/php7.0-fpm-www.sock;
        fastcgi_param PHP_VALUE open_basedir="/home/www";
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }      



}

Ostatnio edytowany przez Twige (2018-03-19 14:47:17)

Offline

 

#15  2018-03-19 14:54:11

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: php zjada cały procesor - prawdopodobnie wina kodu

Ja w Nginxie mam globalnie ustawione:

Kod:

fastcgi_param  PHP_ADMIN_VALUE    open_basedir=$document_root:/tmp/php:/var/log/php;

i jako tako chodzi.

Obecnie np WP-4.9.2


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#16  2018-03-19 15:14:35

  Twige - Użytkownik

Twige
Użytkownik
Zarejestrowany: 2017-05-10

Re: php zjada cały procesor - prawdopodobnie wina kodu

nic to kompletnie nie daje, php zażynana cpu

odkrylem jednak żę kiedy odetne dostęp do katalogu wp-includes poprzez zmiane nazwy to automatycznie jest spokój - tak wiem że wtedy na stronie wywala bład i to dlatego ale kiedy odcinam dostęp do samego katalogu z motywem cpu nadal 100%, czy to moze byc jakas luka wp?


kiedy strona jest wylaczona, sam ngnix zjada około 40% cpu na dwóch procesach

////

wyglada to troche tak jakby ktos odpalił automatyczne odświeżanie co chwile albo puścił apache bench na mój serwis.
moze powiniene pomyśleć o jakichś limitach?


póki co mam ustawione limit requestów i połączeń ustawiony w ten sposób:

        limit_req_zone $binary_remote_addr zone=mylimit:5m rate=24r/s;
    limit_conn_zone $binary_remote_addr zone=addr:10m;

Następnie w vHot dopisane do location /

Kod:

    location / {
        try_files $uri $uri/ /index.php?$args;
               limit_req zone=mylimit;
        limit_conn addr 10;
    }

Ostatnio edytowany przez Twige (2018-03-19 15:32:09)

Offline

 

#17  2018-03-19 15:57:08

  Twige - Użytkownik

Twige
Użytkownik
Zarejestrowany: 2017-05-10

Re: php zjada cały procesor - prawdopodobnie wina kodu

Już wiem co sie dzieje

wystarczy na 5 kartach odpalic auto refresh co sekunde i serwer wysadzony, wiec apache benchmark to bardzo prawdopodobna przyczyna

pytanie teraz w jaki sposób można ustawić limity, które rzeczywiscie coś dadzą, jakieś podpowiedzi? :)

Offline

 

#18  2018-03-19 17:13:35

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: php zjada cały procesor - prawdopodobnie wina kodu

Kod:

iptables -j SYNPROXY --help

W php sensownie skonfigurować [url=http://devboard.pl/opcache-czyli-nowosci-w-php-5-5-8][b]opcache[/b][/url].

Do tego w Nginxie też masz kilka rodzajów [url=https://www.google.pl/search?q=nginx+mod+limit][b]limitów[/b][/url].

Ostatnio edytowany przez Jacekalex (2018-03-19 17:40:11)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#19  2018-03-19 21:02:42

  Twige - Użytkownik

Twige
Użytkownik
Zarejestrowany: 2017-05-10

Re: php zjada cały procesor - prawdopodobnie wina kodu

Te limity dla nginx nic nie daja, opcache włączone, tez nic nie daje...

w przeglądarce błąd : 503 Service Temporarily Unavailable

Ostatnio edytowany przez Twige (2018-03-19 22:17:29)

Offline

 

#20  2018-03-19 21:50:28

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: php zjada cały procesor - prawdopodobnie wina kodu

Serwery i usługi mają coś takiego jak logi.
Jeśli np Nginx zwraca 502, to w logu napisał pewnie, co go boli.

Np SYNPROXY w akcji:

Kod:

ab -n 1000 -c25 https://domena.tld/
This is ApacheBench, Version 2.3 <$Revision: 1796539 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking doemena.tld (be patient)
apr_pollset_poll: The timeout specified has expired (70007)

WP na adresie domena.tld chodzi, serwer żadnych wielkich obciążeń nie zanotował, podczas gdy Twój by chyba zawału dostał.
xD

SOA#1

Ostatnio edytowany przez Jacekalex (2018-03-19 21:59:18)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#21  2018-03-19 22:24:13

  Twige - Użytkownik

Twige
Użytkownik
Zarejestrowany: 2017-05-10

Re: php zjada cały procesor - prawdopodobnie wina kodu

no bardzo mozliwe ze co takiego mialoby miejsce...

możesz mi podesłać jakieś materiały na temat synproxy ? bo limity nginx nie daja kompletnie nic, moge ustawic limit 10 połączeń dla jednego adresu IP, a netstat i tak pokazuje coś zupełnie innego




Kod:

    location / {
        try_files $uri $uri/ /index.php?$args;
               limit_req zone=mylimit;
        limit_conn addr 10;
    }

/////////////////////
przykład:

netstat -ant | egrep '(:80|:443) .*:.*ESTABLISHED' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c

wyrzuca mi że jedne z adresów połączony jest:
    101    103.76.14.107

mimo nałożone limitu w nginx jest przepuszczany, co robie źle? :O

Ostatnio edytowany przez Twige (2018-03-19 22:32:52)

Offline

 

#22  2018-03-19 22:40:33

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: php zjada cały procesor - prawdopodobnie wina kodu

https://lwn.net/Articles/563151/
https://forum.dug.net.pl/viewtopic.php?id=27835

Ja np ustawiam tak:

Kod:

iptables -t raw -A PREROUTING ! -i lo -p tcp -m multiport --dports 80,443 -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j NOTRACK
iptables  -A INPUT ! -i lo -p tcp -m multiport --dports 80,443 -m conntrack --ctstate INVALID,UNTRACKED -j SYNPROXY --sack-perm --timestamp --wscale 7 --mss 1480 --ecn
iptables -A OUTPUT -p tcp -m multiport --sports 80,443 -j ACCEPT

EDIT:

netstat -ant | egrep '(:80|:443) .*:.*ESTABLISHED' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c

wyrzuca mi że jedne z adresów połączony jest:
    101    103.76.14.107[/quote]
Co to za lamerstwo?

[b]cat /usr/local/bin/dport[/b]

Kod:

#!/bin/bash

declare ADRES=$( ifconfig  eth0 | egrep 'inet ' |awk '{print $2}');
sleep 1;
 echo "Moje IP to $ADRES";
 /usr/sbin/iptstate -f -d "$ADRES";
exit 0;

[b] cat /usr/local/bin/sport[/b]

Kod:

#!/bin/bash


declare ADRES=$( ifconfig  eth0 | egrep 'inet ' |awk '{print $2}');
sleep 1;
echo "Moje IP to $ADRES";
 /usr/sbin/iptstate -f -s ${ADRES};
exit 0;

Instalujesz [b]iptstate[/b] i wio.

To by było na tyle

Ostatnio edytowany przez Jacekalex (2018-03-19 22:55:10)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#23  2018-03-22 16:26:26

  Twige - Użytkownik

Twige
Użytkownik
Zarejestrowany: 2017-05-10

Re: php zjada cały procesor - prawdopodobnie wina kodu

Dziękuje za odpowiedź, jesteś w stanie po krótce objaśnić mi jakie konkretnie informacje przedstawianją wyniki z iptstate?

Wyczytałem w internecie że porgram ten służy do sprawdzania ruchu sieciowego w czasie rzeczywistym - https://security.archlinux.org/package/iptstate

Z tego co zrozumiałem czytając help argument -d pokazuje połączenia, które kończą się  danym adresie czyli w tym przypadku u mnie : " [i] Czyli w ten sposób mogę sprawdzać kto konkretnie i z jakiego portu oraz na jaki port się ze mną łączy? [/i]"

Natomiast argument -s pokazuje połączenia, które wychodzą z danego adresu czyli w tym wypadku ode mnie : Czy dobrze to rozumiem?
Pytanie tylko dlaczego widzę tutaj większość połączeń z mojego serwera na mój serwer tylko miedzy portami np 60112 a 80?
80 to port serwera www - wiadomo ale o co chodzi z tym połączeniem?

Nie rozumiem też dlaczego mają w konfiguracji nginx'a ustawiony limit połączeń na jeden adres ip jako 2 a ipstate tak jak netstat pokazuje mi że z jednego adresu ip  jest więcej ni 2 połączenia z moim serwerem na porcie 80.


//

btw czemu netstat to lamerstwo? narzędzie już za stare i przeszło do lamusa?

Ostatnio edytowany przez Twige (2018-03-22 16:28:55)

Offline

 

#24  2018-03-22 17:29:25

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: php zjada cały procesor - prawdopodobnie wina kodu

Netstat nie jest przestarzały, ale służy raczej do pojedynczego sprawdzania, a nie podglądu na żywo połączeń.

Co się tyczy iptstate, to

Kod:

man iptstate

zawiera wyjaśnienie,
a moje skrypty [b]sport[/b] i [b]dport[/b] pokazują po prostu co przylazło do serwera ([b]dport[/b]),
lub co wylazło z serwera ([b]sport[/b]).

Ostatnio edytowany przez Jacekalex (2018-03-22 17:32:06)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#25  2018-03-23 17:03:57

  Twige - Użytkownik

Twige
Użytkownik
Zarejestrowany: 2017-05-10

Re: php zjada cały procesor - prawdopodobnie wina kodu

Rozumiem, a móglbyś się jeszcze odnieść do tych limitów w nginx?
Dlaczego dzieje się tak że mając ustawiony limit połączeń dla adresu IP na dwa w wynikach Twojego skryptu widze ich więcej?

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)

[ Generated in 0.013 seconds, 9 queries executed ]

Informacje debugowania

Time (s) Query
0.00014 SET CHARSET latin2
0.00005 SET NAMES latin2
0.00100 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.145.72.44' WHERE u.id=1
0.00165 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.145.72.44', 1732471642)
0.00055 SELECT * FROM punbb_online WHERE logged<1732471342
0.00061 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=30368 AND t.moved_to IS NULL
0.00006 SELECT search_for, replace_with FROM punbb_censoring
0.00239 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=30368 ORDER BY p.id LIMIT 0,25
0.00080 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=30368
Total query time: 0.00725 s