Русский
English
Главная
RastrWin
Программа
Последние изменения
Часто задаваемые вопросы
Аннотация
Лицензирование и защита от копирования
Права Windows для пользователя RastrWin
Курсы
Компонентная архитектура
Интерфейс
Инструкция по установке
Документация, видео, презентации
Свидетельство о регистрации
RastrKZ
RastrMDP
RastrOS
ZamerSeti
Архив
Bars-Lincor
Расчетная модель
Система моделирования
Последние изменения
Программа
Инструкция пользователя
Инсталляция
RUStab
Загрузка
Последние изменения
Поддержка
Поддержка
Форум
Техподдержка
Персональная
Макро студия
Макро студия
Автоматизация
Работа с SQL
Оценка параметров ЛЭП и ТР
Эффективность размыкания сети
Анализ напряжений в Excel
Автоматизация с "AutoIt"
Создание графа сети из режима
Передача графики в SVG
Вариантные расчеты
Импортозамещение
О нас
О компании
Фотогалерея
Пользователи
Отчеты об использовании своего имущества
Реквизиты
Поддержка
Форум
Техподдержка
Персональная
Авторизация
Запомнить меня на этом компьютере
Забыли свой пароль?
Регистрация
Поиск по сайту
Подписка
Новости Bars- Lincor
Новости RastrWin
Общие новости
Новости RUStab
Изменение параметров
Hits
67409404
754
Hosts
3607374
411
Visitors
53562345
749
77
Главная
/
Поддержка
/
Форумы
/
Rastr3
Форум «Rastr3»
Версия для печати
Список форумов
Новые темы
Список тем
Поиск по форумам
Помощь
Войти
Регистрация
Тема: «
Оптимизация дисковых операций
» в форуме:
Rastr3
Просмотров: 2741
gen
Посетитель
Всего сообщений:
21
Дата регистрации:
16.11.2011
Создано:
07.08.2023 18:17:47
Добрый день, коллеги.
При загрузке любого файла Растр по сути создает его копию во временной папке. Это создает ненужную нагрузку на файловую систему при автоматизации расчетов. На текущий момент мне приходится специально для Растра создавать отдельный RAM-диск и переназначать %TMP% на этот диск. Однако мы растем, и вот уже 1 ГБ RAM Диска недостаточно. Последние схемы от ОДУ Центра и Урала занимают 24 МБ и качество их ужасное.
Если нельзя отказаться от этих временных файлов, то прошу рассмотреть возможность создавать их с флагом FILE_ATTRIBUTE_TEMPORARY.
Это позволит мне отказаться от RAM диска в пользу встроенного в windows функционала.
https://learn.microsoft.c
om/ru-ru/wind...g_behavio
r
Профиль
Наверх
Александр Александров
Администратор
Всего сообщений:
659
Дата регистрации:
31.05.2008
Создано:
07.08.2023 18:50:30
Здравствуйте, коллега!
Этот файл должен удаляться при корректном выходе из программы, если нет, где-то у вас в макросе или ПО идет некорректное завершение.
Профиль
Наверх
gen
Посетитель
Всего сообщений:
21
Дата регистрации:
16.11.2011
Создано:
07.08.2023 21:17:48
Файл удаляется прекрасно. Вроде не писал такого. Проблема в том, что он создается с признаком Архивный. А мне нужен признак Временный, чтобы ОС по минимуму использовала дисковые операции, а вместо этого кэшировала файл в памяти.
Профиль
Наверх
Александр Александров
Администратор
Всего сообщений:
659
Дата регистрации:
31.05.2008
Создано:
07.08.2023 22:59:32
-современные ОC сами все прекрасно кэшируют
- у диска самого есть буфер более 20 МБт
- импортозамещение не предполагает, что целевая ОС это Win
- файл и так открывается в режиме memorymapped
есть какие-т тесты, что это что-то даст и сколько?
Профиль
Наверх
gen
Посетитель
Всего сообщений:
21
Дата регистрации:
16.11.2011
Создано:
09.08.2023 15:45:40
Саша, вопрос про изменение одной строчки в вашем коде. Если вам не сложно и это не противоречит вашей политике, прошу внести это изменение. Я же не знаю, может вы специально ставите признак Архивный. Но он говорит ОС что тебе этот файл не понадобится, а значит его нужно скинуть на диск и забыть.
Да, лет пять назад я делал тесты. Прирост был значительный. И это не удивительно. Средний размер нашего проекта - 200 файлов. Один файл сейчас 24 МБ. Каждый запускаю в 48 потоков. Итого 230 ГБ лишних дисковых операций за расчет проекта и 1.15 ГБ за один пуск, поэтому твои 20 МБ дискового кэша ни о чем, поэтому файлы уже не умещаются в мой 1ГБ RAM диск.
Интересно, а зачем memorymapped? Вы его из разных процессов используете?
И что значит фраза про импортозамещение? Уже есть полноценная версия под Linux? С удовольствием перейду на неё. Вдруг она потокобезопасная наконец-то.
Профиль
Наверх
Александр Александров
Администратор
Всего сообщений:
659
Дата регистрации:
31.05.2008
Создано:
09.08.2023 16:03:09
Цитата
Саша, вопрос про изменение одной строчки в вашем коде. Если вам не сложно и это не противоречит вашей политике, прошу внести это изменение.
- при случае попробую, каких-то тестов не увидел.
Цитата
Я же не знаю, может вы специально ставите признак Архивный. Но он говорит ОС что тебе этот файл не понадобится, а значит его нужно скинуть на диск и забыть.
- не ставим, может сам Метакит. Про то, что там что-то говорит ОС скинуть и забыть, не подтверждаю.
Цитата
Да, лет пять назад я делал тесты. Прирост был значительный. И это не удивительно. Средний размер нашего проекта - 200 файлов. Один файл сейчас 24 МБ. Каждый запускаю в 48 потоков. Итого 230 ГБ лишних дисковых операций за расчет проекта и 1.15 ГБ за один пуск, поэтому твои 20 МБ дискового кэша ни о чем, поэтому файлы уже не умещаются в мой 1ГБ RAM диск.
- раз уж пошли измерения, сейчас в БарсМДП идет расчет до 20 сечений на 24 интервалах планирования, итого 480 отдельных процессов, тормозов с чтением с диска нет.
Для чего запускать 48 потоков не понятно, оптимально оно равно кол-ву ядер процессора, может от этого и тормоза.
Цитата
Интересно, а зачем memorymapped? Вы его из разных процессов используете?
- это сам Метакит, для каких-то его целей, скорее всего для файлов большого объёма и ускорения за счет отображения в память содержимого.
Цитата
И что значит фраза про импортозамещение? Уже есть полноценная версия под Linux? С удовольствием перейду на неё. Вдруг она потокобезопасная наконец-то.
- полноценной версии конечно нет, но мы туда ползем.
Профиль
Наверх
gen
Посетитель
Всего сообщений:
21
Дата регистрации:
16.11.2011
Создано:
09.08.2023 16:27:28
Цитата
- при случае попробую, каких-то тестов не увидел.
Попробуй. Никаких гарантий что это поможет. Но msdn говорит что сделает бесплатное ускорение. Я поверил. Лучше вас тесты никто не сделает. Пока просто увеличил размер RAM-диска.
Цитата
не ставим, может сам Метакит.
Это признак по-умолчанию.
Цитата
идет расчет до 20 сечений на 24 интервалах планирования, итого 480 отдельных процессов
Раз уж написал, спрошу. Как вы избегаете коллизий при использовании COM объекта? Даже при использовании мьютексов из разных потоков я периодически получаю ошибку использования одной памяти. Сейчас слава разработчикам астра стала вылетать с объяснением причины, но всё же вылетает.
Цитата
Для чего запускать 48 потоков не понятно
У меня 48 ядер, 96 логических.
Цитата
это сам Метакит, для каких-то его целей
Тогда понятно. 20 МБ и memorymapped в современных условиях выглядят странно.
Цитата
полноценной версии конечно нет, но мы туда ползем.
Правильной дорогой идете товарищи!
Профиль
Наверх
Александр Александров
Администратор
Всего сообщений:
659
Дата регистрации:
31.05.2008
Создано:
09.08.2023 16:55:26
Цитата
Раз уж написал, спрошу. Как вы избегаете коллизий при использовании COM объекта? Даже при использовании мьютексов из разных потоков я периодически получаю ошибку использования одной памяти.
- это смотря где их поставить, я то же был уверен, что процессы между собой изолированы. Плюс эта штука считает на 5 серверах одновременно, дабы не требовать суперкомпьютера для работы. В случае с 96 ядрами, там вполне может затыкаться по объёму памяти, пропускной способности шины, с диском точно могут быть проблемы, особенно с записью логов из нескольких процессов одновременно.
Профиль
Наверх
gen
Посетитель
Всего сообщений:
21
Дата регистрации:
16.11.2011
Создано:
09.08.2023 20:10:40
Использую мьютекс перед созданием объекта Растра и перед загрузкой любого файла. Но проблемы были всегда. И на предыдущем сервере 24 ядра и с 12 ядрами. Объем памяти точно ни при чем и с пропускной способностью шины при таких нагрузках. Дисковые операции с исходными файлами защищены мьютексом, а временные создаются в RAM. При всем при этом ловлю ошибку доступа к памяти. Как два разных процесса используют одну адресацию - это вопрос к неуправляемому коду. Но замечено что одни файлы более склонны получить такую ошибку чем другие.
Он еще и логи на диск пишет? Куда? Как отключить?
Буду благодарен если поделишься своими наработками как уменьшить коллизии.
Профиль
Наверх
Читают тему
гостей:
1
, пользователей:
0
, из них скрытых:
0
Список форумов
Новые темы
Список тем
Поиск по форумам
Помощь
Войти
Регистрация
Программный комплекс «RastrWin»
© «RastrWin», 1988-2019