Strona 1 z 1
Skrypt perl, zatrzymanie procesu
: 29 maja 2012, 13:29
autor: peter86
Cześć.
Mam skrypt napisany w perlu. Skrypt generuje tabelę bardzo długą. Około 1500 <td>.
Od pewnego czasu, skrypt przestał się wykonywać. Gdy uruchamiam go bezpośrednio spod systemu, dostaję na konsolę komunikat:
Jak sprawdzić co spowodowało zatrzymanie tego skryptu? Jakieś logi gdzieś są?
: 29 maja 2012, 20:15
autor: Bastian
Jak go uruchamiasz w przeglądarce to sprawdzaj w logach serwera http.
: 04 czerwca 2012, 18:08
autor: peter86
Jakieś błędy są. Gdy uruchamiam skrypt z konsoli dostaję:
Dodane:
Skrypt jest uruchamiany przez crona o 11.00, każdego dnia. Serwer miał tylko 1GB pamięci. Gdy dochodził pod 100% zużycia pamięci, system go przerywał. Zwiększyłem ilość pamięci do 3GB. Teraz w programie
Widzę, że skrypt, wykorzystuje ~33% pamięci.
W jaki sposób dokładniej uruchamia się skrypt. W crontab wpisane jest aby uruchamiał się skrypt sh, a skrypt sh uruchamia skrypt perla, który gdy już się skończy, zapisuje wynik do pliku html. Jak mam sprawić, żeby skrypt zabierał więcej pamięci niż te ~33%? Wygląda to tak jakby była gdzieś jakaś granica, jakiś limit, którego skrypt nie przekracza.
: 04 czerwca 2012, 20:43
autor: Bastian
Konfig perla? Ewentualnie zainteresuj sie cgroupami. Dodatkowo mozesz przycinac wykorzytanie czasu procesora przez nice, aczkolwiek nie wiem czy to w tym przypadku ma związek.
: 05 czerwca 2012, 13:56
autor: peter86
Gdy uruchamiam skrypt .sh ręcznie, to dostaję po paru minutach komunikat:
Wykonanie skryptu jest przerywane.
: 05 czerwca 2012, 19:52
autor: Bastian
Sprawdz log w /var/log/messages
: 11 czerwca 2012, 15:10
autor: peter86
Pusto.
Dodane:
Podczas uruchamiania przez crona tego skryptu w /var/log/apache2/error.log odkłada się coś takiego:
Kod: Zaznacz cały
(12)Cannot allocate memory: fork: Unable to fork new process.
Szukałem z pomocą Google trochę, oczywiście 100 tysięcy tematów. Nic jednak tak do końca nie pasuje do mojej sytuacji. Obecnie skrypt nie wykonuje się wcale. Lista powiększyła się o kilka pozycji więcej i po minucie od uruchomienia skryptu, system go przerywa. Próbuję różnych ustawień serwera www, ale jakoś nie widać, żeby coś się nawet minimalnie zmieniało.