rphost 1c 8.3 жрёт память

Достаточно часто встречается проблема, связанная с “отжором” ОЗУ процессом rphost. Обычно решается перезапуском 1с сервера. Предлагаю Вашему вниманию скрипт, который будет автоматически перезапускать 1с сервер, когда процесс rphost будет съедать память больше указанного значения. Актуально для CentOS.

Скрипт:

#!/bin/bash
memory_limit=12582912 #~12 GB #это значение можно менять
echo "[Press CTRL+C to stop]";
while true
do
    for pid in `pgrep rphost`
    do
        memory=`pmap $pid | grep -oP "total\s+\d+" | grep -oP "\d+"`;
        if (( $memory > $memory_limit )); then
            echo "stopping server 1c of rphost_$pid - $memory K";
            timestamp=`date +%s%N | cut -b1-13`;
            /etc/rc.d/init.d/srv1cv83 stop
            wait rphost $pid;
            /etc/rc.d/init.d/srv1cv83 start 
            echo "starting server 1c of rphost_$pid - $memory K - done";
        fi
    done
    
    sleep 10;
done

В папке /root/ создаем файл с расширением *.sh и копируем в нее скрипт. В моем примере memory_limit=12582912 – это значит, что после достижения файлом rphost ~12 GB ОЗУ, будет рестарт 1с сервера.

Важно! Скрипт необходимо запускать отдельной сессией (в фоне работать не будет).

Например:

sh 1cmem.sh

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *