Перенос файлов в оперативную память | Крымский форум

Перенос файлов в оперативную память

  • Автор темы FreeLSD
  • Дата начала
  • Добро пожаловать на форум! Рады видеть вас здесь! Зарегистрируйтесь или Войдите в аккаунт, чтобы иметь полный доступ к площадке!
F

FreeLSD

Guest
Дело в следующем: есть комп, работающий непрерывно в качестве сервера некой программы. И, поскольку это не полноценный сервер, рассчитанный на работу в режиме 24/7/365, случаются у него проблемы с износом. Причем в основном диска. Причем одного-единственного файла
smile.gif

То есть все остальное полностью устраивает, как в плане производительности/функциональности, так и надежности, так что смысла ставить полноценный сервак с SAS или SCSI не вижу, в т.ч. потому, что настройка упомянутой проги достаточно трудоемкая сама по себе. Но вот на одном и том же файле периодически возникают бэды, и виснет, она, скотина, т.к. не умеет обрабатывать такие ситуации
no.gif
CHKDSC проблему решает, но ненадолго - примерно на месяц-полтора.
Впечатление такое, что проге этот файл нужен каждую секунду, головка харда с него прям не отъезжает
blink.gif

Файлик маленький, содержимое текстовое.
Вот и возникла мысль, нет ли возможности сделать такой финт - после загрузки системы перемещать его в какой-нибудь RAM-диск, и пусть программа его мусолит, сколько надо. Главное, чтобы обратиться она к нему могла по его прежнему пути, ей непременно надо, чтобы он находился в %SYSTEMROOT%
Есть ли какие-то готовые средства по этому поводу?
 
Не пойму, файлик маленький а в дисковый кэш не помещается?
Или у винды даже такого нет?

Можно поискать какой-нибудь фриварный RAM-disk драйвер.
 
дома лежит винт
с двумя прозрачной полосками на диске
(головка протерла его "до дыр")
это был линукс
судя по всему
эти полоске места для файлов /var/log/messages
и каталог /var/db/mysql
 
Eugene, вот и у меня такая же фигня. Только под винду
smile.gif


geoka, я не знаю, кэшируется он или нет, вижу только, что это место на винте сильно юзается. О совпадении речь не идет - это уже второй винт, и файл один и тот же. Даже pagefile, похоже, используется не так активно
g.gif
. А вообще это какой-то iniшник. Просто нужен этой долбаной проге каждую секунду
ranting.gif

RAMдиск найти не проблема, проблема в том, что проге файл нужен именно в этом месте. Написать, что ли, батничек, который в автозапуске туда его скопирует, потом удалит и сделает на его месте линк на RAM-диск? Больше ничего в голову не приходит, но уж как-то это не через то место получается...
g.gif
 
сделать символическую ссылку в этом месте на файл расположенный в памяти

копируем наш "любимый" файл в надежное место

mv /etc/scuko.ini /home/user/scuko.ini

делаем рамдиск

bla-bla-bla ramdisk

вставляем в автозагрузку это:

копируем файл в память

cp /home/user/scuko.ini /mnt/ramdisk/scuko.ini

делаем символическую ссылку на него в память

ln -s /mnt/ramdisk/scuko.ini /etc/scuko.ini

теперь в /etc/scuko.ini лежит не сам файл
а ссылка на него который лежит на рамдиске
 
Цитата(FreeLSD)
RAMдиск найти не проблема, проблема в том, что проге файл нужен именно в этом месте. Написать, что ли, батничек, который в автозапуске туда его скопирует, потом удалит и сделает на его месте линк на RAM-диск? Больше ничего в голову не приходит, но уж как-то это не через то место получается...

На NTFS линки на файлы вроде делаются только в пределах раздела..
Как варианты:
  1. Если программа ищет именно %SYSTEMROOT% (не расширяя сразу переменную), то может прокатит создание одноименной папки рядом с exe-шником (или в ее "рабочей папке"), и подключение в нее тома заранее созданного рамдиска как пустой NTFS папки (через Управление дисками или сторонней прогой умеющей создавать NTFS ссылки)
  2. Если не катит, то можно запускать прогу примерно таким батником:
    Код

    @Echo Off
    SetLocal
    Rem ...
    Rem Копирование нужных файлов на рамдиск
    Rem ...
    Set SYSTEMROOT=E:\
    Start File.exe
    Exit


    где - E:\ - путь к RAM-диску, File.exe - запускаемый файл проги
Для того чтобы прога нормально находила нужные библиотеки\файлы возможно нужно будет поменять в системной переменной среды Path %systemroot% на полный путь\подкинуть жестко прописанные файлы на рамдиск
 
FreeLSD
А что за прога-то? Может её проще подлечить, то бишь, пропатчить?
 
Ну не знаю, как насчет пропатчить, прога редкая - сервер видеонаблюдения GeoVision
smile.gif

Сейчас нашел утилитку для удобства создания разных линков под винду - буду пробовать.
 
Назад
Сверху