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  2013-05-26 12:46:09

  mikajlo - Użytkownik

mikajlo
Użytkownik
Zarejestrowany: 2013-05-26

Problem z pamięcią RAM - strona WWW, serwer VPS

Witam,
w końcu miarka się przebrała i postanowiłem rozwiązać ten problem..

Od dłuższego czasu mam problem z przepełnieniem RAMu na kupionym serwerze VPS (niestety dostawca jakoś też nie potrafi sobie z tym poradzić więc postanowiłem sam zabrać się za konfiguracje.. niestety wiedzy trochę mi brakuje i szukam jej u bardziej doświadczonych osób.. :) )

[b]Dane wejściowe[/b]

Serwer dysponuje 1GB pamięci RAM (Debian 6 Minimal). Służy wyłącznie do utrzymywania stron WWW - jest ich w sumie 5 ( z czego dwie stanowią 90% ruchu, który jest na poziomie 200 userów dziennie.. czyli liczba znikoma..).
[b]
Problem[/b]

Około co 2-3 dni muszę z panelu VM robić restart serwera po to aby RAM został wyczyszczony.. (bo przez te dwa dni RAM całkowicie się zapycha i nawet przez ssh nie można się połączyć do serwera..)..

Czmy może być to spowodowane ? Dodam jeszcze, że na serwerze jest postawiona strona oparta o silnik WordPress oraz strona oparta o dość popularny skrypt katalogu stron (SEOKatalog).

Zrobiłem właśnie update systemu i może to rozwiąże problem (chodź troche to wydaje się łudzące..). Myślałem może o zainstalowaniu jakiegoś skryptu, który np. przy zapełnieniu ~90% RAMu automatycznie czyściłby pamięć, ale powiem szczerze, że nie wiem jak takowy skrypt miałby wyglądać, i czy w ogóle jest to dobre rozwiązanie tego problemu..

Podrzucam jeszcze link do wyników dla zapytania htop.. (po 10 minutach od restartu serwera..) :: [url=http://oi44.tinypic.com/5nky7l.jpg][i]ZRZUT[/i][/url]

Pozdrawiam i czekam na Waszą pomoc :)
Michał

Offline

 

#2  2013-05-26 13:05:20

  Pavlo950 - człowiek pasjonat :D

Pavlo950
człowiek pasjonat :D
Zarejestrowany: 2012-02-20
Serwis

Re: Problem z pamięcią RAM - strona WWW, serwer VPS

Tymczasowo stwórz swap'a i zobacz jak to będzie działać. Czy masz możliwość dołożenia pamięci?

//

Nie znam się na serwerowych sprawach, ale równie dobrze możesz zarzucić skrypt, który maszynę będzie raz dziennie w godzinach nocnych restartował.

Ostatnio edytowany przez PavloAkaLogan (2013-05-26 13:06:23)

Offline

 

#3  2013-05-26 14:57:30

  mikajlo - Użytkownik

mikajlo
Użytkownik
Zarejestrowany: 2013-05-26

Re: Problem z pamięcią RAM - strona WWW, serwer VPS

Ogólnie to ja na linuksach to się słabo znam.. (i stąd m.in. ten wątek..). RAMu pewnie mógłbym "dołożyć" (czyli zwiększyć pakiet dopłacając kasy, ale myślę, że to nie jest dobre rozwiązanie tego problemu..).

Co to znaczy tymczasowo stworzyć swap ? (wiem, że normalnie to się tworzy np. przy instalacji jako powierzchnie do stronnicowania..). Ogólnie nie wiem czy miałbym taką możliwość bo jest to serwer utworzony podajrze na OpenVZ..)

Z tym restartowaniem to być może będę musiał to tak rozwiązać.. chodź wydaje m się, że to również nie rozwiązuje poprawnie problemu .. wcześniej mając te same strony na hostingu współdzielonym nie było żadnych problemów.. Czy mogę do tego wykorzystać crontab ?

Offline

 

#4  2013-05-26 14:57:39

  mati75 - Psuj

mati75
Psuj
Skąd: default city
Zarejestrowany: 2010-03-14
Serwis

Re: Problem z pamięcią RAM - strona WWW, serwer VPS

Wywal apache w cholere. Tutaj jest opis jak ustawić nginx żeby działał z wordpress: http://michal.durys.pl/2013/03/serwer-na-debianie-nginx-php-i-bazy-danych/


[img]https://l0calh0st.pl/obrazki/userbar.png[/img]

Offline

 

#5  2013-05-26 16:18:38

  mikajlo - Użytkownik

mikajlo
Użytkownik
Zarejestrowany: 2013-05-26

Re: Problem z pamięcią RAM - strona WWW, serwer VPS

@mati75 - tak, ale są dwa pytania..
1) Czy to rozwiąże mój problem?
2) Wordpress ok, ale co z innymi stronami?

Offline

 

#6  2013-05-27 00:35:16

  bobycob - Członek z Ramienia

bobycob
Członek z Ramienia
Skąd: Wrocław
Zarejestrowany: 2007-08-15

Re: Problem z pamięcią RAM - strona WWW, serwer VPS

Co jest w logach? Czy jesteś w stanie stwierdzić co dokładnie pożera całą pamięć? Nie wiedząc co jest przyczyną problemu trudno znaleźć rozwiązanie ;). W Linuksie jest taki mechanizm który nazywa się oom (out of memory killer). Gdy brakuje pamięci zaczyna losowo ubijać procesy - z sshd włącznie. Jego działanie powinno być widoczne w logach. O ile problem faktycznie wynika z braku pamięci.

Mati - jak sąsiad narzeka na forda sugerujesz mu zmianę na mercedesa? ;)

Ostatnio edytowany przez bobycob (2013-05-27 00:38:53)

Offline

 

#7  2013-05-27 01:16:09

  Jacekalex - Podobno człowiek...;)

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

Re: Problem z pamięcią RAM - strona WWW, serwer VPS

Ja radzę zainteresować sie cgroup.memory, albo jakimś innym ograniczenoem, np  ulimit, albo softlimit (z pakietu daemon-tools).
I przy okazji zobaczyć, co ma wyciek pamięci, bo samo zjawisko normalne nie jest.


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

Offline

 

#8  2013-05-27 19:51:16

  mikajlo - Użytkownik

mikajlo
Użytkownik
Zarejestrowany: 2013-05-26

Re: Problem z pamięcią RAM - strona WWW, serwer VPS

@bobycob - a możesz podpowiedzieć gdzie te logi znaleźć? (niestety z linuxem to jestem na bakier, a chciałbym jakoś wyeliminować ten problem)
@Jacekalex - jak mogę zlokalizować ten wyciek pamięci ? (właśnie przez wspomniane logi?)

Offline

 

#9  2013-06-01 13:05:36

  bobycob - Członek z Ramienia

bobycob
Członek z Ramienia
Skąd: Wrocław
Zarejestrowany: 2007-08-15

Re: Problem z pamięcią RAM - strona WWW, serwer VPS

Wszystkie logi są w /var/log - nietrudno odnieść wrażenie, że nawet nie próbowałeś sam znaleźć rozwiązania.  Nie wspominając o podstawach zarządzania serwerem którym władasz.

Offline

 

#10  2013-06-01 13:37:22

  mati75 - Psuj

mati75
Psuj
Skąd: default city
Zarejestrowany: 2010-03-14
Serwis

Re: Problem z pamięcią RAM - strona WWW, serwer VPS

[quote=bobycob]Mati - jak sąsiad narzeka na forda sugerujesz mu zmianę na mercedesa? ;)[/quote]
Apache w normalnej (lamerskiej) konfiguracji na vps się nie nadaje.


[img]https://l0calh0st.pl/obrazki/userbar.png[/img]

Offline

 

#11  2013-06-01 14:53:53

  Jacekalex - Podobno człowiek...;)

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

Re: Problem z pamięcią RAM - strona WWW, serwer VPS

[quote=mikajlo]@bobycob - a możesz podpowiedzieć gdzie te logi znaleźć? (niestety z linuxem to jestem na bakier, a chciałbym jakoś wyeliminować ten problem)
@Jacekalex - jak mogę zlokalizować ten wyciek pamięci ? (właśnie przez wspomniane logi?)[/quote]
Sprawdzić?
http://jacekalex.sh.dug.net.pl/psmem


Z Linuxem na bakier? stare przysłowie powiada:
"jak nie potrafisz, nie pchaj się a afisz".


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

Offline

 

#12  2013-06-02 11:23:16

  mikajlo - Użytkownik

mikajlo
Użytkownik
Zarejestrowany: 2013-05-26

Re: Problem z pamięcią RAM - strona WWW, serwer VPS

Dzieki za podesłane linki..

Ale dzięki Wam zrozumiałem, że pozostaje mi zaaplikować w cronie raz dziennie (w nocy) restart systemu..

Pozdrawiam!

Offline

 

#13  2013-06-02 11:54:37

  Jacekalex - Podobno człowiek...;)

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

Re: Problem z pamięcią RAM - strona WWW, serwer VPS

[quote=mikajlo]Dzieki za podesłane linki..

Ale dzięki Wam zrozumiałem, że pozostaje mi zaaplikować w cronie raz dziennie (w nocy) restart systemu..

Pozdrawiam![/quote]
A nie lepiej wsadzić do Crona skrypt psmem, ktory masz podlinkowany, zeby do logu godzinowego będzie zrucał wynik?

Porównując wyniki z kiku godzin latwo znajdziesz, gdzie jest wyciek pamięci.


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

Offline

 

#14  2013-06-04 18:25:31

  mikajlo - Użytkownik

mikajlo
Użytkownik
Zarejestrowany: 2013-05-26

Re: Problem z pamięcią RAM - strona WWW, serwer VPS

@Jacekalex - a ten skrypt jest gotowy do uruchomienia? (tzn. nie muszę nic w nim modyfikować, tylko utworzyć pliczek i podpiąć go do crona ?)

Offline

 

#15  2013-06-05 05:35:08

  Jacekalex - Podobno człowiek...;)

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

Re: Problem z pamięcią RAM - strona WWW, serwer VPS

Gotowy.

Uruchomienie?
np:

Kod:

psmemng >/{gdzieś/na/dysku}/memory-raport-$(date "+%Y.%m.%d-%H.%m.%S")

Jak będzie tak leciał co godzinę, to porównując raporty z godziny np 12.00, 18.00 i 24.00 łatwo zauważysz, co przybrało na wadze.

Ostatnio edytowany przez Jacekalex (2013-06-05 05:35:49)


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

Offline

 

#16  2013-06-05 16:26:09

  mikajlo - Użytkownik

mikajlo
Użytkownik
Zarejestrowany: 2013-05-26

Re: Problem z pamięcią RAM - strona WWW, serwer VPS

Hm.. chyba nie rozumiem.. co znaczy psmemng ? (to jest jakiś program ? bo nic na ten temat nie mogę znaleźć...)
Czy użyłeś po prostu "skrótu myślowego" i ma to wyglądać np. tak:

Kod:

0 * * * * python /script/ps_mem.py > /dump/memory-raport-$(date "+%Y.%m.%d-%H.%m.%S")

?

Offline

 

#17  2013-06-05 20:04:12

  Jacekalex - Podobno człowiek...;)

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

Re: Problem z pamięcią RAM - strona WWW, serwer VPS

psmemng - tak się u mnie nazywa skrypt, siedzi sobie w /usr/local/bin, ma uprawnienia 755   i można go wywołać w terminalu z palca.

Tu jest zawsze najnowsza wersja skryptu, na stronie Autora:
http://www.pixelbeat.org/scripts/ps_mem.py

Nazwę skrypta w swoim systemie możesz sobie sam ustawić taką, jak Ci odpowiada.

U siebie zrobiłbym skrypta w cron.hourly:

Kod:

#!/bin/bash
mkdir -p /var/log/memory 2>&1>/dev/null
/usr/local/bin/psmemng > /var/log/memory/memory-raport-$(date "+%Y.%m.%d-%H.%m.%S")

Zapisał tego skrypta jako np   

Kod:

/etc/cron.hourly/memoryraport

potem

Kod:

chmod 755 /etc/cron.hourly/memoryraport

i gotowe, Cron wykona go co godzinę.

Potem dla pewności wykonał go z palca:

Kod:

/etc/cron.hourly/memoryraport

I sprawdził, czy zrobił raport:

Kod:

ls /var/log/memory/*
/var/log/memory/memory-raport-2013.06.05-20.06.56

Jak widać, działa......  ;)

Możesz też ustawić, zeby raporty był wysyłany mailem, i setkę innych akcji.
W językach skryptowych nie zbyt wielu ograniczeń w tym zakresie.

Tylko przede wszystkim weź się w garść, jak jesteś administratorem serwera, to nim administruj, jak administrator.


Pozdro
;-)

Ostatnio edytowany przez Jacekalex (2013-06-06 04:02:05)


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

Offline

 

#18  2013-06-06 00:00:34

  mikajlo - Użytkownik

mikajlo
Użytkownik
Zarejestrowany: 2013-05-26

Re: Problem z pamięcią RAM - strona WWW, serwer VPS

Ok, dzięki Jacek za tip "step by step" :) Natomiast odnośnie kwestii czy jestem administratorem to bym tak siebie nie nazwał, bo to wiele za dużo powiedziane :P Ja tylko z konieczności (i też trochę chcęci) chciałbym rozwiązać tą sprawę, ale brakuje umiejętności..  No ale wydaje się, że skryp odpalił i monitoruje :) (dam znać jak tylko serwer zbierze trochę logów i jak padnie.. co się wydarzy pewnie jutro/pojutrze..)

Offline

 

#19  2013-06-07 20:57:39

  mikajlo - Użytkownik

mikajlo
Użytkownik
Zarejestrowany: 2013-05-26

Re: Problem z pamięcią RAM - strona WWW, serwer VPS

No i dzisiaj serwer padł.. (pamięć zajęta..). Ostatni log jaki był wykonany jest pusty.. (pewnie juz wtedy nie było "siły" aby wykonać raport..).

Przed ostatni raport wygląda tak:

Kod:

 Private  +   Shared  =  RAM used    Program 

 80.0 KiB +  12.0 KiB =  92.0 KiB    ispcp_daemon
 76.0 KiB +  17.0 KiB =  93.0 KiB    logger
 64.0 KiB +  51.5 KiB = 115.5 KiB    sh
 88.0 KiB +  41.0 KiB = 129.0 KiB    run-parts
 92.0 KiB +  51.5 KiB = 143.5 KiB    mysqld_safe
172.0 KiB +  34.0 KiB = 206.0 KiB    init
184.0 KiB +  71.0 KiB = 255.0 KiB    couriertcpd (2)
244.0 KiB +  49.0 KiB = 293.0 KiB    courierlogger (3)
364.0 KiB + 117.5 KiB = 481.5 KiB    pickup
372.0 KiB + 119.5 KiB = 491.5 KiB    bounce
396.0 KiB + 110.5 KiB = 506.5 KiB    master
516.0 KiB +  59.5 KiB = 575.5 KiB    sshd
388.0 KiB + 223.5 KiB = 611.5 KiB    cron (2)
596.0 KiB +  20.0 KiB = 616.0 KiB    memoryraport
504.0 KiB + 134.0 KiB = 638.0 KiB    smtp
432.0 KiB + 214.5 KiB = 646.5 KiB    authdaemond (6)
544.0 KiB + 129.5 KiB = 673.5 KiB    qmgr
756.0 KiB +  54.5 KiB = 810.5 KiB    rsyslogd
  1.0 MiB + 251.0 KiB =   1.3 MiB    trivial-rewrite
  2.4 MiB +  70.0 KiB =   2.4 MiB    proftpd
  3.6 MiB + 655.0 KiB =   4.2 MiB    ispcp-apache-lo (2)
  6.4 MiB + 450.0 KiB =   6.8 MiB    postgrey
  1.9 MiB +   5.7 MiB =   7.6 MiB    perl (2)
  4.9 MiB +   3.3 MiB =   8.2 MiB    apache2 (9)
  8.3 MiB +  91.0 KiB =   8.4 MiB    named
 20.6 MiB +  72.5 KiB =  20.7 MiB    mysqld
369.2 MiB +  40.3 MiB = 409.6 MiB    php5-cgi (41)
---------------------------------
                        476.4 MiB
=================================

.. czyli wygląda to na php.. tylko czy to oznacza, że zainstalowany skrypt strony WWW powoduje te problemy?

Offline

 

#20  2013-06-08 04:29:15

  Jacekalex - Podobno człowiek...;)

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

Re: Problem z pamięcią RAM - strona WWW, serwer VPS

Czy w poprzednich logach wpis dla php rośnie?

I co to za php-cgi?

Najprościej można użyć   php-fpm, i odpalić go z poleceniem softlimit z pakietu daemontools, podobnie, jak się to robi z Qmailem, jak w poniższym przykładzie:

Kod:

exec /usr/bin/softlimit -m 40000000 /usr/local/bin/sslserver -v -R -l \
 "domena.tld" -x /etc/tcp.smtp.cdb 0 587 \
 /usr/sbin/qmail-smtpd /usr/sbin/vchkpw /bin/true 2>&1 \

Względnie ustawienie limitów w [url=http://dug.net.pl/tekst/42/]/etc/security/limits.conf[/url] (dalekie od doskonałości), czy zabawa z [url=http://wolvverine.jogger.pl/2012/06/23/cgroups-zarzadzanie-zasobami-w-linux/]cgroup.ememory[/url].

To są środki doraźne, ale niezbędne w stabilnym systemie, docelowo albo poszukaj, jak się ustawia [url=http://www.php.net/manual/en/ini.core.php#ini.memory-limit]limit pamięci w php.ini[/url], albo zainstaluj inną wersję, która nie ma takiego apetytu, bo ten jest chyba zbyt "pamięciożerny" w tej chwili.

.. czyli wygląda to na php.. tylko czy to oznacza, że zainstalowany skrypt strony WWW powoduje te problemy?[/quote]
Możliwe, jednak jeśli skrypty php strony www mogą blokować RAM serwera, to Administrator tego serwera powinien kontynuować karierę, jako przysmak w konserwach dla psów. :D


Pozdro
;-)

Ostatnio edytowany przez Jacekalex (2013-06-08 04:53:32)


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

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.010 seconds, 11 queries executed ]

Informacje debugowania

Time (s) Query
0.00010 SET CHARSET latin2
0.00004 SET NAMES latin2
0.00089 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='18.225.254.81' WHERE u.id=1
0.00066 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.225.254.81', 1732526329)
0.00042 SELECT * FROM punbb_online WHERE logged<1732526029
0.00064 SELECT topic_id FROM punbb_posts WHERE id=234198
0.00005 SELECT id FROM punbb_posts WHERE topic_id=23598 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=23598 AND t.moved_to IS NULL
0.00006 SELECT search_for, replace_with FROM punbb_censoring
0.00331 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=23598 ORDER BY p.id LIMIT 0,25
0.00079 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=23598
Total query time: 0.00754 s