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  2010-09-28 10:10:29

  shreku - Użytkownik

shreku
Użytkownik
Skąd: Warszawa
Zarejestrowany: 2005-06-03
Serwis

Debugowanie serwera apache2 - wolna odpowiedź serwera

Witam,
nosze sie z takim "małym" problemem pt. gdy chce wejść na strone ( ip.board + xcache + mysqlquery )to zanim przegladarka zacznie dostawać dane od serwera to mijają ze 3-4 sekundy. Problem bl wiekszy a to dlatego ze miałem źle cos wpisane w /etc/hosts i trwało to ponad 10 sekund - proawdopodobnie resolv nazwy hosta localhosta poprzez zew. ip a nie przez 127.0.0.1.

Problem występuje w różnej skali na tym serwerze, wordpress także ma czkawke innych stron jeszcze nie odpalałem, natomiast pliki serwowane tylko przez apacha bez uzycia php zapierniczają az miło - przejrzałem na blizniaczym serwerze konfiguracje php5, apache'a, mysql'a i pliki sa identyczne - wyłączenie ładowania ioncube'a tez nic nie dało i juz ręce mi opadają nie wiem gdzie szukać tej dzióry :(

serwer ma 2 karty sieciowe 1 - swiat oraz 1 openvpn do spiecia z innymi serwerami. DNS'y sa tylko na świat bez intranetu, domyslna trasa idzie odrazu przez karte wan'owa. TCP dumpem sprawdzałem to w czasie czkawki NIC na interfejsie sie nie działo. Czyli coś na serwerze blokuje phpa;/

serwis www -> http://adechade.com

nie wiem czym i jak debugować apacha czy on wisi na jakimś resolvie czy na czyms innym.

Ostatnio edytowany przez shreku (2010-09-28 10:17:46)

Offline

 

#2  2010-09-28 17:08:29

  Jacekalex - Podobno człowiek...;)

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

Re: Debugowanie serwera apache2 - wolna odpowiedź serwera

Kod:

sudo apache2 -t

-to pokaże błędy w konfiguracji apacha.

W plikach konfiguracyjnych poszukaj opcji log level i włącz debug, a potem logi...


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

Offline

 

#3  2010-09-28 18:25:20

  lessmian - Użytkownik

lessmian
Użytkownik
Skąd: Kraków
Zarejestrowany: 2009-09-25

Re: Debugowanie serwera apache2 - wolna odpowiedź serwera

Obstawiał bym na to, że ciągnie dane z bazy i dopiero jak je dostanie, to zaczyna renderować stronę. Nie wiem tylko jak dużą masz tą bazę, ale wordpress i podobne mu aplikacje, lubią trzymać wszystko co się rusza w bazie.

Jak bardzo chcesz to sprawdzić to możesz to zrobić np. tak:
1. Ustalasz pid procesu apache który obsługuje Twoje zapytanie - może to być trudne, ale w środowisku testowym powinno się udać bez większych problemów. Jeśli PHP masz jako CGI, zamiast pidu apache, bierzesz pid procesu PHP.
2. Jedziesz strace'em i patrzysz co tam w trawie piszczy:

Kod:

strace -p PID -e trace=network -tt

Gdzieś tam powinieneś wyczaić na czym wisi.

Offline

 

#4  2010-09-29 10:24:44

  shreku - Użytkownik

shreku
Użytkownik
Skąd: Warszawa
Zarejestrowany: 2005-06-03
Serwis

Re: Debugowanie serwera apache2 - wolna odpowiedź serwera

konfig poprawny - 2 warningi o braku vhostow na 2 ip.

strace

Kod:

Process 5448 attached - interrupt to quit
10:18:43.149436 socket(PF_INET6, SOCK_STREAM, IPPROTO_IP) = 31
10:18:43.149655 connect(31, {sa_family=AF_INET6, sin6_port=htons(443), inet_pton(AF_INET6, "::", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = -1 EINPROGRESS (Operation now in progress)
10:18:43.149782 getsockopt(31, SOL_SOCKET, SO_ERROR, [0], [4]) = 0
10:18:43.165829 --- SIGCHLD (Child exited) @ 0 (0) ---
10:18:58.149421 socket(PF_INET6, SOCK_STREAM, IPPROTO_IP) = 31
10:18:58.149562 connect(31, {sa_family=AF_INET6, sin6_port=htons(443), inet_pton(AF_INET6, "::", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = -1 EINPROGRESS (Operation now in progress)
10:18:58.149673 getsockopt(31, SOL_SOCKET, SO_ERROR, [0], [4]) = 0
10:18:58.165359 --- SIGCHLD (Child exited) @ 0 (0) ---
10:19:00.149398 socket(PF_INET6, SOCK_STREAM, IPPROTO_IP) = 31
10:19:00.149539 connect(31, {sa_family=AF_INET6, sin6_port=htons(443), inet_pton(AF_INET6, "::", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = -1 EINPROGRESS (Operation now in progress)
10:19:00.149647 getsockopt(31, SOL_SOCKET, SO_ERROR, [0], [4]) = 0
10:19:00.164733 --- SIGCHLD (Child exited) @ 0 (0) ---
10:19:01.149391 socket(PF_INET6, SOCK_STREAM, IPPROTO_IP) = 31
10:19:01.149532 connect(31, {sa_family=AF_INET6, sin6_port=htons(443), inet_pton(AF_INET6, "::", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = -1 EINPROGRESS (Operation now in progress)
10:19:01.149640 getsockopt(31, SOL_SOCKET, SO_ERROR, [0], [4]) = 0
10:19:01.165993 --- SIGCHLD (Child exited) @ 0 (0) ---
10:19:02.149362 socket(PF_INET6, SOCK_STREAM, IPPROTO_IP) = 31
10:19:02.149503 connect(31, {sa_family=AF_INET6, sin6_port=htons(443), inet_pton(AF_INET6, "::", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = -1 EINPROGRESS (Operation now in progress)
10:19:02.149611 getsockopt(31, SOL_SOCKET, SO_ERROR, [0], [4]) = 0
10:19:02.164785 --- SIGCHLD (Child exited) @ 0 (0) ---
10:19:03.149365 socket(PF_INET6, SOCK_STREAM, IPPROTO_IP) = 31
10:19:03.149572 connect(31, {sa_family=AF_INET6, sin6_port=htons(443), inet_pton(AF_INET6, "::", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = -1 EINPROGRESS (Operation now in progress)
10:19:03.149727 getsockopt(31, SOL_SOCKET, SO_ERROR, [0], [4]) = 0
10:19:03.165427 --- SIGCHLD (Child exited) @ 0 (0) ---
10:19:04.149347 socket(PF_INET6, SOCK_STREAM, IPPROTO_IP) = 31
10:19:04.149484 connect(31, {sa_family=AF_INET6, sin6_port=htons(443), inet_pton(AF_INET6, "::", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = -1 EINPROGRESS (Operation now in progress)
10:19:04.149586 getsockopt(31, SOL_SOCKET, SO_ERROR, [0], [4]) = 0
10:19:04.164343 --- SIGCHLD (Child exited) @ 0 (0) ---
10:19:29.149405 socket(PF_INET6, SOCK_STREAM, IPPROTO_IP) = 31
10:19:29.149547 connect(31, {sa_family=AF_INET6, sin6_port=htons(443), inet_pton(AF_INET6, "::", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = -1 EINPROGRESS (Operation now in progress)
10:19:29.149658 getsockopt(31, SOL_SOCKET, SO_ERROR, [0], [4]) = 0
10:19:29.164333 --- SIGCHLD (Child exited) @ 0 (0) ---
10:20:07.149391 socket(PF_INET6, SOCK_STREAM, IPPROTO_IP) = 31
10:20:07.149596 connect(31, {sa_family=AF_INET6, sin6_port=htons(443), inet_pton(AF_INET6, "::", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = -1 EINPROGRESS (Operation now in progress)
10:20:07.149756 getsockopt(31, SOL_SOCKET, SO_ERROR, [0], [4]) = 0
10:20:07.172712 --- SIGCHLD (Child exited) @ 0 (0) ---
10:20:10.149379 socket(PF_INET6, SOCK_STREAM, IPPROTO_IP) = 31
10:20:10.149520 connect(31, {sa_family=AF_INET6, sin6_port=htons(443), inet_pton(AF_INET6, "::", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = -1 EINPROGRESS (Operation now in progress)
10:20:10.149629 getsockopt(31, SOL_SOCKET, SO_ERROR, [0], [4]) = 0
10:20:10.165715 --- SIGCHLD (Child exited) @ 0 (0) ---

nic mi to nie mowi :|

apache działą na mpm-itk, kazdy vhost ma swojego usera takze ustaleni pidu to nie problem ale złapanie go to jes problem ;)

strace złapany z wywołania apacha tego najnizszego poziomu.

Problem jest taki ze ta strona działała na blizniaczym vps'ie potencjalnie taka sama konfiguracja jesli dobrze mi sie wydaje sprawdzałem konfigi i tam działało szybciej.

Offline

 

#5  2010-09-29 12:51:06

  zlyZwierz - Moderator

zlyZwierz
Moderator
Zarejestrowany: 2005-02-18
Serwis

Re: Debugowanie serwera apache2 - wolna odpowiedź serwera

A jaki MPM masz na tym apache?
Worker,  prefork czy coś...
PHP jako libphp, czy cgi...


[url=http://www.netfix.pro]www.netfix.pro[/url]

Offline

 

#6  2010-09-29 15:00:40

  shreku - Użytkownik

shreku
Użytkownik
Skąd: Warszawa
Zarejestrowany: 2005-06-03
Serwis

Re: Debugowanie serwera apache2 - wolna odpowiedź serwera

MPM-ITK
libphp(chyba)

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)

[ Generated in 0.009 seconds, 11 queries executed ]

Informacje debugowania

Time (s) Query
0.00009 SET CHARSET latin2
0.00003 SET NAMES latin2
0.00094 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.141.198.147' WHERE u.id=1
0.00090 UPDATE punbb_online SET logged=1732330940 WHERE ident='3.141.198.147'
0.00064 SELECT * FROM punbb_online WHERE logged<1732330640
0.00080 SELECT topic_id FROM punbb_posts WHERE id=154338
0.00130 SELECT id FROM punbb_posts WHERE topic_id=17400 ORDER BY posted
0.00058 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=17400 AND t.moved_to IS NULL
0.00005 SELECT search_for, replace_with FROM punbb_censoring
0.00084 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=17400 ORDER BY p.id LIMIT 0,25
0.00078 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=17400
Total query time: 0.00695 s