У меня на одной тачке постоянно кто-то (другой процесс) убивает мой процесс.
Можно ли каким-нить образом выявить этого гада?
ЗЫ Мой процесс пожирает все ресурсы компа, примерно, на 5-10 минут (обходит директории, парсит логи и т.п.).
Узнать киллера (:))
Модератор: Bizdelnick
-
Angel_13th
- Сообщения: 1164
- Статус: ...-oo=ll=oo-...
- ОС: Gentoo
-
flook
- Сообщения: 585
- Статус: Просто flook
Re: Узнать киллера
Может oom в дяре сработал
В каждом из нас спит гений... и с каждым днем все крепче...
-
t.t
- Бывший модератор
- Сообщения: 7390
- Статус: думающий о вечном
- ОС: Debian, LMDE
-
Jan2ary
- Бывший модератор
- Сообщения: 630
- Статус: Тщедушный очкарик
Re: Узнать киллера
А еще есть такая опция в ядре, которая позволяет ядру снимать процессы, которые систему сильно грузят. Как называется не помню. Может в логах что есть....
Не шалю, никого не трогаю, починяю примус...
-
sergius
- Сообщения: 782
-
madskull
- Сообщения: 1019
- Статус: Экс-металлюга
Re: Узнать киллера
Подозреваю, что надо [пере]смотреть саму программу, ее алгоритм.
ArchLinux / IceWM
-
sergius
- Сообщения: 782
Re: Узнать киллера
Этим сейчас и занимаюсь
ЗЫ Проблема в том, что этот скрипт так и должен грузить тачку.
-
flook
- Сообщения: 585
- Статус: Просто flook
Re: Узнать киллера
Это и есть oom
1. Процесс позвал (например) mmap
2. Ядро позвало get_free_page (buddy page allocator если кто слышал)
3. Этот buddy сказал try_to_free_pages, когда увидел, что у него страницы кончились
4. try_to_free_pages пошел освобождать страницы из (в частности) page cache
5. Не смог => полез к свопу
6. Своп решил, что у него тоже с местом туго
7. try_to_free_pages решил, что что-то неладно и на всякий случай позвал oom...
8. oom пошарился по списку процессов и пристрелил самого толстого
вот так вот сложно. Причем от момента конца памяти до момента вызова oom может пройти много времени, т.к. механизм освобожения страниц из page cache и/или сброса их в своп - это довольно муторная, нелинейная и полуэвристическая процедура...
Отсюда вывод - можно наплодить много процессов, каждый из которых съест чуть чуть, а в результате может сдохнуить Xы или Apache...
В каждом из нас спит гений... и с каждым днем все крепче...
-
t.t
- Бывший модератор
- Сообщения: 7390
- Статус: думающий о вечном
- ОС: Debian, LMDE
Re: Узнать киллера
Так художественно рассказываешь -- классЭто и есть oom Out of memory killer. А цепочка приводящая от свопа к oom выглядит так:
1. Процесс позвал (например) mmap
2. Ядро позвало get_free_page (buddy page allocator если кто слышал)
3. Этот buddy сказал try_to_free_pages, когда увидел, что у него страницы кончились
4. try_to_free_pages пошел освобождать страницы из (в частности) page cache
5. Не смог => полез к свопу
6. Своп решил, что у него тоже с местом туго
7. try_to_free_pages решил, что что-то неладно и на всякий случай позвал oom...
8. oom пошарился по списку процессов и пристрелил самого толстого
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж