Forum Webscript.Ru

Программирование => Perl => Тема начата: Nickolaz от 18 Ноября 2005, 11:42:39

Название: Размер SWAP-файла
Отправлено: Nickolaz от 18 Ноября 2005, 11:42:39
Здравствуйте!

У меня такая проблема - нужно по крону запускать серию скриптов. Но естесственно возможности сервера не бесконечны. Поэтому я решил запуск скриптов ограничить по условию. Знаю, что есть некий перловский swap-файл. Но как узнать его размер на текущий момент?

Подскажите плз :)
А может у кого-нибудь есть идея получше? :beer:
Название: Размер SWAP-файла
Отправлено: Nickolaz от 18 Ноября 2005, 11:43:37
Кажется я неверно выразился :(
В кроне стоит один скрипт (perl), который запускает серию других скриптов...
Название: Размер SWAP-файла
Отправлено: Nickolaz от 18 Ноября 2005, 12:43:31
можно еще сделать ограничение по количеству процессов в системе - с этим кто-нибудь работал? :(

Помогите плз
Название: Размер SWAP-файла
Отправлено: NeoNox от 18 Ноября 2005, 13:30:00
Нету "некоего перловского swap-файла". О какой системе идет речь?
Название: Размер SWAP-файла
Отправлено: Nickolaz от 18 Ноября 2005, 13:48:54
спасибо за ответ :) меня дезинформировали :(
Система - Fedora Core 4

Объясню более подробно, что мне нужно, чтобы представлять, зачем я сюда написал.
Есть скрипт в кроне (запуск каждые 5 минут) - он делает выборку из бд и смотрит, какие скрипты надо запускать. Одни скрипты работают 5 минут, другие 4 часа. Всего скриптов около 1500. Поэтому надо их ставить в какое-то подобие очереди, иначе они и канал забьют и оперативку.

Раз нет swap, поможет только ограничение по количеству процессов наверное... Но желательно его сделать именно в скрипте, вообще идеально - смотреть, сколько запущено процессов данным скриптом. Но дело в том, что запущенный скрипт должен запустить другие скрипты и отключиться. Через 5 минут ему надо запускаться опять, и снова смотреть, какие скрипты надо запускать и проходить по циклу этих скриптов, по очереди проверяя условие количества процессов (или какое-то другое условие - с ним и проблема :) ).

Заранее спасибо за ответ. Вообще, сейчас мне поможет любой ответ, даже если это будет - "такое невозможно", так как система всё равно только тестируется и архитектура может меняться в зависимости от обстоятельств. Но ответ: "это возможно с помощью одной строчки - $proc_count=...; $max_proc_count=...;" очень порадовал бы :) Хотя наверное такое как раз невозможно :(
Название: Размер SWAP-файла
Отправлено: NeoNox от 18 Ноября 2005, 14:18:06
Есть модуль Proc::ProcessTable. Искать на http://search.cpan.org/ он тебе поможет получить информацию о всех запущеных процессах..
Название: Размер SWAP-файла
Отправлено: Nickolaz от 18 Ноября 2005, 18:47:31
Спасибо большое!  Буду разбираться, что к чему :)
Название: Размер SWAP-файла
Отправлено: Sanchez от 28 Ноября 2005, 21:24:51
Кстати, а что лучше, пользоваться модулями для получения какой-то функциональности или делать это через командную строку? Грубо говоря, NeoNox для получения информации о процессах предложил модуль, а ведь можно просто сделать системный вызов ps aux, что предпочтительнее и почему?
Название: Размер SWAP-файла
Отправлено: Regestor от 29 Ноября 2005, 00:50:21
Sanchez
Мое личное мнение... предпочтительно модулями..... доводов много... и сложно щас все так сказать выложить....

ну для начала....
1) Код становится непереносимым, привязанным к платформе
2) Некоторые хосты для безопасности запрещают системные вызовы
3) Удобность, простота... и ненужны велосипеды 3343949493 версии... поверьте... их и так есть кому изобретать....
Название: Размер SWAP-файла
Отправлено: Sanchez от 29 Ноября 2005, 00:56:34
"1) Код становится непереносимым, привязанным к платформе"
да, пожалуй это наиболее существенно..