Перейти к основному содержанию

1C — очищаем оперативную память по расписанию

1C

1C сервер не хочет очищать за собой оперативную память. Автоматизируем процесс очистки.

Господин Wen Jia по фамилии Liu из Сиднея нам сильно помог, написав консольную утилиту EmptyStandbyList.exe, которую мы используем для автоматизации процесса ежедневной очистки оперативной памяти. Утилита работает в ОС Windows Vista и выше. Я проверял на Windows Server 2012 R2.

Утилита может очищать:

  • process working sets
  • the modified page list
  • the standby lists (priorities 0 to 7)
  • the priority 0 standby list only

Использование:

EmptyStandbyList.exe workingsets|modifiedpagelist|standbylist|priority0standbylist

Скачиваем EmptyStandbyList.exe:

https://wj32.org/wp/software/empty-standby-list/

Или у меня: EmptyStandbyList.exe

Сохраняем утилиту в папку, я сохраняю по адресу:

C:\RAM\EmptyStandbyList.exe

Пишем батник emptylist.bat:

echo off
cd C:\RAM
EmptyStandbyList.exe workingsets
EmptyStandbyList.exe standbylist
exit

Сохраняем батник по адресу:

C:\RAM\emptylist.bat

ram

Если запустить батник под администратором, то память очистится:

ram

У меня эффект очистки слабо виден, но когда 1С забивает всю память, то ступенька круче.

Теперь создаём в Планировщике (Task Scheduler) новую задачу, которая каждый день в 7 утра будет запускать наш батник от имени локального администратора сервера.

ram

Код от Сергея Дмитриевича

Дополнение от читателей.

У меня вот такой код, автоматически запускает от имени админа и скачивает EmptyStandbyList.exe в случае отсутствия.

Так же можно удалить код запуска от имени администратора и сконвертировать в exe через Advanced Bat Converter с галочками запуска от имени админа и режима "невидимости".

Меняем по своему вкусу как надо, кодировка 866.

@echo off
cd /D "%~dp0"
cls
title Автоочистка кэша ОЗУ
:: Проверка наличия прав Администратора (во избежания перезапуска bat если уже есть права Админа)
WHOAMI /PRIV | find /i "SeRemoteShutdownPrivilege" > nul
if %ERRORLEVEL% == 0 goto admin
::для работы с папкой appdata права админа не требуются
set script_patch=%appdata%\Colvor's_code\temp
md %script_patch%
cls
:: Создаём vbs скрипт для выдачи прав Администратора bat файлу
ver |>NUL find /v "5." && if "%~1"=="" (
Echo CreateObject^("Shell.Application"^).ShellExecute WScript.Arguments^(0^),"1","","runas",1 >"%script_patch%\Elevating.vbs"
cscript.exe //nologo "%script_patch%\Elevating.vbs" "%~f0"& goto :eof
)
del /Q "%script_patch%\Elevating.vbs"
cls
:: Повторная проверка выдачи прав Администратора
WHOAMI /PRIV | find /i "SeRemoteShutdownPrivilege" > nul
if %ERRORLEVEL% == 0 goto admin
color 0c
echo Нет прав администратора.
pause
exit
:admin
:check
dir /B |find "EmptyStandbyList.exe"||(
echo Ошибка, нужжная програма не найдена, пробуем скачать.
echo Проверка наличия инетернета
ping google.com|find /I "TTL="||echo Ошибка, нет подключения к интернету && timeout /t 5 && exit
echo Скачиваем нужную программу
powershell Invoke-WebRequest -URI "'https://web.archive.org/web/20220626170945if_/https://wj32.org/wp/download/1455/'" -outfile "'EmptyStandbyList.exe'"
timeout /t 5
)
:st_m
cls
timeout /t 10 /nobreak
EmptyStandbyList
goto st_m

Теги

 

Похожие материалы

Удалённо завершить сеанс пользователя Windows Server 2012 R2

Случилось так, что юзер на сервере запустил Wireshark и забыл. Через несколько дней оперативка кончилась и серверу Windows Server 2012 R2 стало плохо. Попытки зайти на сервер по RDP или консоль не увенчались успехом. Удалось удалённо подключиться к управлению компьютером и в логах узнать о проблемах с оперативкой. Стало понятно, что нужно сделать юзеру LOGOFF, чтобы все запущенные приложения завершили свою работу.

Теги

Делаем загрузочную флешку с Windows 7

Понадобилось мне как-то сделать загрузочную USB флешку с дистрибутивом Windows 7. ISO образ у меня был, а Интернета не было. Пришлось делать загрузочную флешку подручными средствами Windows без использования дополнительных программ.

Теги

fc — сравнение файлов в командной строке

Для сравнения содержимого файлов в командной строке Windows есть специальная утилита fc. Утилита позволяет сравнить содержимое двух или группы файлов и отобразить найденные различия.

Теги