Skrypt perl, zatrzymanie procesu

Potrzebujesz pomocy z C, C++, perl, python, itp.
peter86
Beginner
Posty: 254
Rejestracja: 10 czerwca 2007, 23:19
Lokalizacja: Katowice, Dąbrowa Górnicza

Skrypt perl, zatrzymanie procesu

Post 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:

Kod: Zaznacz cały

zatrzymanie procesu
Jak sprawdzić co spowodowało zatrzymanie tego skryptu? Jakieś logi gdzieś są?
Awatar użytkownika
Bastian
Member
Posty: 1424
Rejestracja: 30 marca 2008, 16:09
Lokalizacja: Poznañ

Post autor: Bastian »

Jak go uruchamiasz w przeglądarce to sprawdzaj w logach serwera http.
peter86
Beginner
Posty: 254
Rejestracja: 10 czerwca 2007, 23:19
Lokalizacja: Katowice, Dąbrowa Górnicza

Post autor: peter86 »

Jakieś błędy są. Gdy uruchamiam skrypt z konsoli dostaję:

Kod: Zaznacz cały

Proces zatrzymany

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.
Awatar użytkownika
Bastian
Member
Posty: 1424
Rejestracja: 30 marca 2008, 16:09
Lokalizacja: Poznañ

Post 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.
peter86
Beginner
Posty: 254
Rejestracja: 10 czerwca 2007, 23:19
Lokalizacja: Katowice, Dąbrowa Górnicza

Post autor: peter86 »

Gdy uruchamiam skrypt .sh ręcznie, to dostaję po paru minutach komunikat:

Kod: Zaznacz cały

killed
Wykonanie skryptu jest przerywane.
Awatar użytkownika
Bastian
Member
Posty: 1424
Rejestracja: 30 marca 2008, 16:09
Lokalizacja: Poznañ

Post autor: Bastian »

Sprawdz log w /var/log/messages
peter86
Beginner
Posty: 254
Rejestracja: 10 czerwca 2007, 23:19
Lokalizacja: Katowice, Dąbrowa Górnicza

Post 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.
ODPOWIEDZ