Показано с 1 по 8 из 8

Тема: SysExecute и приоритеты процессов, СПК207

  1. #1

    Question SysExecute и приоритеты процессов, СПК207

    Есть SD карта куда валятся архивы в csv-шном формате, файл за сутки жиреет до 32 Мб, а так как в СПК линуск и есть средства сжатия bzip2, то почему бы не воспользоваться!
    Составил значит я команду которая все мои csv-ншники найдет (кроме того который сейчас заполняется) и каждый сожмет в отдельный файл а исходный удалит.

    Код:
    nice -n 19 find /mnt/ufs/media/mmcblk0p1/*.csv -mmin +1 -exec nice -n 19 bzip2 {} \; &
    Понизив приоритет этой задаче до минимального и запустив фоном через терминал putty, я с триумфом наблюдал что файлы сжимались (где-то 20-30 минут на каждый). Я был в восторге так как визуализация не сильно просела, а архивы стали весить 90кБ вместо 32Mb!

    Но.

    После того как я вшил эту команду в проект и стал вызывать её через SysExecute я что-то сразу же и приуныл. SysExecute ровно как и SysExecute2 запускают команду с таким ацким неизменяемым приоритетом что СПК практически перестает реагировать на что либо. И мои nice, renice никак не влияют на ситуацию.

    Начал я думать как же быть... Вот коротко что я еще попробовал:

    - запуск команды по расписанию средствами cron. Неудача - cron'а нету в линуксе СПК
    - создание bash-скрипта и запуск его в фоне при старте ОС - правка файла /etc/rc.local. Неудача - после рестарта СПК вся папка /etc/ сбрасывается в заводскую, просто не помнит что я туда что-то дописывал.

    Прошу помочь советом

  2. #2

    По умолчанию

    таск, что инициирует команду подвисает сразу после инициализации команды? или же выполняется, но с тормозами?
    если второй вариант и Вы используете sysexec2 - сделайте например так

    IF NOT entered THEN
    sys_cmd(cmd:='nice -n 19 find /mnt/ufs/media/mmcblk0p1/*.csv -mmin +1 -exec nice -n 19 bzip2 {} \; &' , output_string=> , complete=> );
    entered:=TRUE;
    ELSE
    sys_cmd(cmd:='');
    END_IF

    IF sys_cmd.complete THEN
    (*необходимые действия *)
    entered:=FALSE; (*для повтора команды*)
    END_IF

  3. #3

    По умолчанию

    Таск работает какое-то время, но по вачьдогу все вываливается в эксапшн.
    Попробовал предложенный Вами способ - все так же.
    Я смотрю через команду top загрузку процессора - моя задача почему-то получает наивысший приоритет когда вызывается из sysexec/sysexec2, а когда вызываю из консоли все ок.
    спк207.png

  4. #4
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,810

    По умолчанию

    Цитата Сообщение от Makarovas Посмотреть сообщение
    Есть SD карта куда валятся архивы в csv-шном формате, файл за сутки жиреет до 32 Мб, а так как в СПК линуск и есть средства сжатия bzip2, то почему бы не воспользоваться!
    Составил значит я команду которая все мои csv-ншники найдет (кроме того который сейчас заполняется) и каждый сожмет в отдельный файл а исходный удалит.

    Код:
    nice -n 19 find /mnt/ufs/media/mmcblk0p1/*.csv -mmin +1 -exec nice -n 19 bzip2 {} \; &
    Понизив приоритет этой задаче до минимального и запустив фоном через терминал putty, я с триумфом наблюдал что файлы сжимались (где-то 20-30 минут на каждый). Я был в восторге так как визуализация не сильно просела, а архивы стали весить 90кБ вместо 32Mb!

    Но.

    После того как я вшил эту команду в проект и стал вызывать её через SysExecute я что-то сразу же и приуныл. SysExecute ровно как и SysExecute2 запускают команду с таким ацким неизменяемым приоритетом что СПК практически перестает реагировать на что либо. И мои nice, renice никак не влияют на ситуацию.

    Начал я думать как же быть... Вот коротко что я еще попробовал:

    - запуск команды по расписанию средствами cron. Неудача - cron'а нету в линуксе СПК
    - создание bash-скрипта и запуск его в фоне при старте ОС - правка файла /etc/rc.local. Неудача - после рестарта СПК вся папка /etc/ сбрасывается в заводскую, просто не помнит что я туда что-то дописывал.

    Прошу помочь советом
    1) почему бы команду архивирования не записать в скрипт, а из плк запускать не всю эту строку а созданный скрипт с низким приоритетом
    2) скрипт с правами только для чтения разве пропадет из папки etc?
    3) http://linux-freebsd.ru/linux/system...-debian-linux/ может еще ionice использовать?
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  5. #5

    По умолчанию

    1) так и сделано - но разницы нет никакой
    2) вот как я делал:
    - скрипт я положил в /mnt/ufs/root/arc.sh, сделал его исполняемым
    - открыл файл /etc/rc.local и дописал туда в конец строки вызов скрипта в фоне /mnt/ufs/root/arc.sh &
    - отключаю питание, включаю питание
    - убеждаюсь что файл /etc/rc.local имеет исходное состояние
    3) тут тоже облом - о ionice спк не знает

    скрипт вот такой:

    Код:
    #!/bin/bash
    
    while true
    do
    	nice -n -19 find /mnt/ufs/media/mmcblk0p1/*.csv -mmin +1 -exec nice -n -19 bzip2 {} \;
    	sleep 24h
    done
    
    exit 0

  6. #6
    Пользователь Аватар для murdemon
    Регистрация
    03.02.2014
    Адрес
    Санкт-Петербург
    Сообщений
    787

    По умолчанию

    чтобы изменения etc сохранял с консоли набирай busybox reboot

  7. #7
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,810

    По умолчанию

    открыл файл /etc/rc.local и дописал туда в конец строки вызов скрипта в фоне /mnt/ufs/root/arc.sh &
    попробуйте после внесения изменений выполнить команду chmod 544 /etc/rc.local , вдруг поможет
    кроме того линукс в плк от овен любит исполнять правильно команды только при написании полного пути
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  8. #8

    По умолчанию

    Получилось сохранить etc: убрал атрибуты для записи rc.local (хз, может это лишнее было) и выполнил busybox reboot.

    Всем спасибо!

Похожие темы

  1. Быстродействие СПК207
    от Amko в разделе СПК2хх
    Ответов: 43
    Последнее сообщение: 17.02.2014, 17:49
  2. ПЛК 323 библиотека SysExecute
    от Роланд в разделе ПЛК3хх
    Ответов: 9
    Последнее сообщение: 26.01.2014, 11:28
  3. СПК207
    от kholonkin в разделе СПК2хх
    Ответов: 19
    Последнее сообщение: 28.08.2013, 22:11
  4. СПК207+СМИ2
    от 2117180 в разделе СПК2хх
    Ответов: 1
    Последнее сообщение: 21.08.2013, 11:58
  5. Ответов: 1
    Последнее сообщение: 05.12.2008, 18:38

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •