![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 330 Pomógł: 0 Dołączył: 25.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Mam problem.
Na moim serwerze dostępne jest 1024 mb pamięci RAM, odwidzi n strony jest ok 2500 osób dziennie. Co jakiś czas pojawia się komunikat o przekroczonej pamięci ram - try to allocate .... Po wywołaniu na stronie internetowej memory_get_usage (na samym dole strony), funkcja zwraca ok 5 MB, czy to jest wartość powiedzmy wmiare standardowa? Starałem się zoptymalizować skrypt pod kątem wykorzystywanej pamięci, to co zauważyłem i dziwi mnie najbardziej, że po zwykłym zainkludowaniu plików (klas php), zużycie pamięci rośnie ok 2MB, w momencie, gdy te pliki zajmują tylko 200 KB, dlaczego tak się dzieje? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 872 Pomógł: 94 Dołączył: 31.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Cytat zużycie pamięci rośnie ok 2MB, w momencie, gdy te pliki zajmują tylko 200 KB, dlaczego tak się dzieje? Nigdy nie zaglebialem sie w ten temat, ale tez tak mam. Co do zuzycia 5MB RAMu to zalezy jaka to aplikacja, ale wedlug mnie to i tak duzo.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 898 Pomógł: 80 Dołączył: 31.05.2008 Ostrzeżenie: (20%) ![]() ![]() |
mam wycieki pamieci, moja aplikacja po wczytaniu pliku *.wsd zużywa 50mb więcej, omg co ja zrobiłem?
Ty kpisz czy o drogę pytasz? Weź pierw wyprofiluj skrypt (podpowiedź: xdebug) i zobacz co się dzieje. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 702 Pomógł: 65 Dołączył: 16.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
5MB zajęte przez aplikacje to dużo ? Wg mnie to jest średnia wartość , niektóre nasze aplikacje w ZF lub Kohana 3.x pożerają po 10-12mb .
Zwiększ w php.ini wartośc memory_limit |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 307 Pomógł: 37 Dołączył: 9.11.2010 Skąd: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
5MB zajęte przez aplikacje to dużo ? Wg mnie to jest średnia wartość , niektóre nasze aplikacje w ZF lub Kohana 3.x pożerają po 10-12mb . Zwiększ w php.ini wartośc memory_limit Jedyne co mogę powiedzieć o tej 'poradzie' to że jest ona na takim poziomie jak odpowiedzi w stylu 'użyj @' na pytanie co zrobić gdy parser wyrzucą 'WARNING: xxxxx', podczas gdy supresja błędów naprawdę jest złem wcielonym (choć nie zawsze), to samo z 'zwiększ limit' (IMG:style_emoticons/default/closedeyes.gif) Ten post edytował Uriziel01 7.11.2011, 11:45:28 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Widzisz, to że masz 1gb ram, nie znaczy że tylko php z niego będzie korzystać. Na sam start system trochę ssie, w zależności od tego jaki to system i jakich pakietów używasz (domyślam się że linuch), dochodzi jeszcze serwer (domyślam się że apache) i tutaj też zależy w jakim trybie masz go uruchomionego, najwolniejszy i najbardziej wpierdzielający pamięć tryb to cgi.. Nie mniej, podaj cały komunikat błędu, bo wróżbiarstwem tutaj się raczej nikt nie zajmuje.
5mb to nie jest dużo, wordpress chyba z 10mb żre, a symfony 2 bez akceleratora potrafi na "hello world" również zjeść 10mb lub coś koło tego. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 330 Pomógł: 0 Dołączył: 25.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
"Fatal error: Out of memory (allocated 6291456) (tried to allocate 77824 bytes) in ..."
Zakładając że mamy 1 GB tylko na php (pomijam apathe itd.. ) i średniej wielkości przeciętny sklep internetowy, ile odwiedzin dziennie powinien wytrzymać serwer (jeśli chodzi o pamięć) ? Wiem, że cieżko oszacować, więc możemy założyć bazę 3.000 produktów i standardowy skrypt typu: osCommerce, presta, magento, jeśli ktoś wie jakiego rzędu będzie to liczba: 1.000/2.000/5.000/10.0000/20.0000? __________________ Znalazłem taki test http://www.cms.rk.edu.pl/w/p/cmsxdebugbenchmark/ Tak jak wspomniałem wcześniej najwięcej pamięci (3mb z 5 mb) jest pochłaniane w przez zwykłe include() zewnętrznych klas php (bez żadnych dodatkowych operacji), więc jak to się dzieje że phpbb uzyskał wynik maksymalnego zużycia pamięci na poziomie zaledwie 0,74209595, jest tam na pewno dużo więcej inkludowanych plików o łącznej wadze większej niż w moim skrypcie. Ten post edytował propage 7.11.2011, 17:05:52 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 1 233 Pomógł: 87 Dołączył: 6.03.2009 Ostrzeżenie: (40%) ![]() ![]() |
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 330 Pomógł: 0 Dołączył: 25.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
na samej górze zwróci 0.
Po wczytani klas zwróci 3mb. |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Wyskakuje ci to na każdej stronie, czy tylko na konkretnych? Czemu nie podałeś calutkiego komunikatu błędu? Brakuje jeszcze pliku i numeru linii Jak możesz to pokaż albo cały ten plik, albo kilka wierszy poprzedzających błąd i kilka wierszy za błędem. Kurdę nigdy tego nie zrozumiem, ludzie liczą na pomoc, mówią "nie działa" a ty stań się nagle wróżbitą, zaparz sobie kawki żeby powróżyć z fusów i znajdź rozwiązanie. Reasumując:
Co robisz kiedy wyskakuje ci taki błąd? (może wrzucasz 60 megowy obrazek i go zmniejszasz za pomocą GD..) Kod w którym błąd występuje? Jaki to hosting? Jaka wersja php? Wcześniej php domyślnie miało 16mb memory limit, obecnie ma 128mb, więc nie wiem czy ci proponować ustawić memory limit bo nie wiem jaką masz wersję pechapa. |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 330 Pomógł: 0 Dołączył: 25.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
1. nie podałem kodu i numeru linki ponieważ za każdym razem, gdy wyskoczy komunikat pojawia się w nim inny plik i inny numer linii - porostu nagle kończy się Pamięć (nie jest tak że akurat konkrety skrypt wymaga wyjątkowo dużo Pamięci). "Fatal error: Out of memory (allocated 1310720) (tried to allocate 77824 bytes) in ... ", co ciekawe na monitorze używania RAM dla serwera nigdy nie przekroczyliśmy 1.1 GB, więc teoretycznie nie powinien pojawić się komunikat o tym, że nie można "allocate 77 KB"??.
2. hosting VPS 1256 MB 3. PHP Version 5.3.3-7+squeeze3, standardowo ustawiony mamy limit 256 MB per skrypt. Ten post edytował propage 8.11.2011, 12:25:21 |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 1 233 Pomógł: 87 Dołączył: 6.03.2009 Ostrzeżenie: (40%) ![]() ![]() |
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 330 Pomógł: 0 Dołączył: 25.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
sprawdziłem, zaokrągliłem do "0", na początku skryptu jest dokładnie 84KB.
Ten post edytował propage 8.11.2011, 12:24:21 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 02:12 |