"Быстрый" запуск ОС и софта (Нетривиальный вопрос)

Модератор: Модераторы разделов

Аватара пользователя
Zeus
Сообщения: 694

"Быстрый" запуск ОС и софта

Сообщение Zeus »

Есть комп под Linux'ом (конкретно - Red Hat 9).
На нём в режиме 24х7 (короче постоянно) работает одна софтина. Годами.
Понятно, что в ней накапливаются последствия ошибок, деградация и всё такое.
Иногда (рекорд - полтора года) комп юзеру приходится перегружать. Это занимает минут 10.
Нужно ускорить прОцесс.
Появилась мысль сделать как в буках: давишь кнопку "Спать" - он куда-то скидывает данные и отрубается. Включаешь - он за несколько секунд всё восстанавливает "как было" и продолжает работу.
Вот идея и заключается в том, чтобы запомнить некоторое стартовое, "чистое" состояние системы и при нажатии пользователем, допустим reset'а - за несколько секунд восстанавливает все "с нуля".

Вот как это грамотно реализовать?
И как вообще засыпание реализовано?

В общем, принимаются любые мысли.
Спасибо сказали:
Аватара пользователя
TuLiss
Сообщения: 1611
Статус: 01100
ОС: Gentoo,Ubuntu,MacOS X

Re: "Быстрый" запуск ОС и софта

Сообщение TuLiss »

Zeus писал(а):
13.12.2005 14:47
На нём в режиме 24х7 (короче постоянно) работает одна софтина. Годами.
Понятно, что в ней накапливаются последствия ошибок, деградация и всё такое.
Иногда (рекорд - полтора года) комп юзеру приходится перегружать. Это занимает минут 10.
Нужно ускорить прОцесс.
В общем, принимаются любые мысли.



хм. У нас сервера по 5 лет не перезагружаесь, и там не то, что 1 софтина работает,а целый зоопарк.
Для начало предложу отрубить все ненужные сервесы. Ограничить систему логгирование,и посмотреть производительность от проги, использует ли она своп итд.
Чтение man'нов в слух ещЁ никому не помогало!...
kernel 4.2
chmod -x `which chmod`
War, war never changes...
Спасибо сказали:
Аватара пользователя
Zeus
Сообщения: 694

Re: "Быстрый" запуск ОС и софта

Сообщение Zeus »

Вопрос не в повышении времени работы, а именно в "загрузке" компа без загрузки.
Пока копаю в сторону swsuspend'а.
Кстати, никто не пробовал как такие фичи работают с многоголовыми видяхами? AGP и PCI Matrox'ы 450, 550.
Спасибо сказали:
Аватара пользователя
ddc
Бывший модератор
Сообщения: 3535
Статус: OpenBSD-compatible
ОС: OpenBSD -current

Re: "Быстрый" запуск ОС и софта

Сообщение ddc »

С суспендом можно такое проделать. Нужно только для этого иметь два swap-раздела.

swsuspend фактически просто скидывает данные на swap-раздел и читает их оттуда при перезагрузке. Однако swap-раздел с данными восстановления можно передавать ядру в виде параметра при загрузке. Т.е. алгоритм такой: берётся система с двумя swap'ам, один из них делается swap'ом, другой не трогается. Она приводится в нужное состояние и усыпляется. Потом с помощью LiveCD меняем "/etc/fstab", так чтобы в качестве swap'а использовался только второй swap, и конфиг grub (видимо, "/boot/grub/boot.lst"), где даём параметр ядру просыпаться с первого swap'а.
Спасибо сказали:
Nab
Сообщения: 257

Re: "Быстрый" запуск ОС и софта

Сообщение Nab »

Вот такая штука есть
chpox-0.7.1.tar.gz (150Кб)
Правда родной сайт не отвечает но я качал с gnu.org помоему...
Вырезка из readme

CHPOX - CHeckPOinter for linuX
==============================

Copyright © 2002, Olexander O. Sudakov <csaa@mail.univ.kiev.ua>
Copyright © 2002-2004, Eugeniy S. Meshcheryakov <eugen@univ.kiev.ua>

This program licensed under the GNU General Public License. See COPYING for
more details.

-----------------------------

CHPOX is a set of the Linux kernel modules for transparent dumping of
specified processes into disk file and restarting ones.

FEATURES
========

Dumping of one process or process with all it's children into disk file.
Restarting of process or group of processes from file.
CHPOX supports dumping of virtual memory, regular files,
current working directory, pipes, Unix sockets, multiple non-interacting
processes.
It does not crush on openMosix [3], it is SMP safe.
It works as a kernel module, so you does not need recompilation of the
Linux kernel.
Summports i386, ppc and s390/s390x architectures.

--------------Поскипано-----------------

LINKS
=====

1. http://www.chechpointing.org/ Checkpointing.org: The home to checkpointing packages
2. http://www.beowulf.org/software/bproc.html BPROC: Beowulf Distributed Process Space
3. http://www.openmosix.org/ The openMosix Project
Чтобы правильно задать вопрос, нужно знать больше половины ответа...
FREESCO in Ukraine
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: "Быстрый" запуск ОС и софта

Сообщение t.t »

(Nab @ Dec 13 2005, в 20:39) писал(а):Вот такая штука есть
chpox-0.7.1.tar.gz (150Кб)
Кстати, поиск пакета на http://www1.apt-get.org/ привёл меня на сайт, который, как мне кажется, может быть интересен и в контексте этой темы: http://www.cluster.kiev.ua/
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
TuLiss
Сообщения: 1611
Статус: 01100
ОС: Gentoo,Ubuntu,MacOS X

Re: "Быстрый" запуск ОС и софта

Сообщение TuLiss »

Zeus писал(а):
13.12.2005 15:58
Вопрос не в повышении времени работы, а именно в "загрузке" компа без загрузки.
Пока копаю в сторону swsuspend'а.
Кстати, никто не пробовал как такие фичи работают с многоголовыми видяхами? AGP и PCI Matrox'ы 450, 550.


Вам нужно ускорить процесс загрузки компа? я правильно понял?
если да, то отключите половину сервесов и будет счастье. У меня slackware грузится секунда 20 =)
(если не быстрее, без загрузки графики)

А то , что в ищите это так называемый спящий режим, каким оброзом он вам поможет быстрее перезагрузить комп не понятно.
Чтение man'нов в слух ещЁ никому не помогало!...
kernel 4.2
chmod -x `which chmod`
War, war never changes...
Спасибо сказали:
Аватара пользователя
WarlorD
Сообщения: 728
Статус: хочешь пропатчить KDE под FreeBSD - спроси меня как!
ОС: FreeBSD, Debian GNU\Linux

Re: "Быстрый" запуск ОС и софта

Сообщение WarlorD »

ddc писал(а):
13.12.2005 18:51
С суспендом можно такое проделать. Нужно только для этого иметь два swap-раздела.

swsuspend фактически просто скидывает данные на swap-раздел и читает их оттуда при перезагрузке. Однако swap-раздел с данными восстановления можно передавать ядру в виде параметра при загрузке. Т.е. алгоритм такой: берётся система с двумя swap'ам, один из них делается swap'ом, другой не трогается. Она приводится в нужное состояние и усыпляется. Потом с помощью LiveCD меняем "/etc/fstab", так чтобы в качестве swap'а использовался только второй swap, и конфиг grub (видимо, "/boot/grub/boot.lst"), где даём параметр ядру просыпаться с первого swap'а.

не знаю, вот у меня один swap и оттуда вполне нормально просыпается, хотя он у меня почти не используется конечно во время работы системы.
Кстати вот а такой не скромный вопрос: а почему тема в разделе "программирование"?
А на счет скорости перезагрузки в таком случае, ну скорость то скоростью, но это ведь не совсем перезагрузка, так что возможно просто от тез ошибок или чего еще там вы не избавитесть, тк система полностью восстановит то. что было до "усыпления".
FreeBSD
Debian GNU\Linux
Компьютер позволяет решать все те проблемы, которые до изобретения компьютера не существовали.
Спасибо сказали:
Аватара пользователя
ddc
Бывший модератор
Сообщения: 3535
Статус: OpenBSD-compatible
ОС: OpenBSD -current

Re: "Быстрый" запуск ОС и софта

Сообщение ddc »

WarlorD писал(а):
14.12.2005 00:47
не знаю, вот у меня один swap и оттуда вполне нормально просыпается
<...>
возможно просто от тез ошибок или чего еще там вы не избавитесть, тк система полностью восстановит то. что было до "усыпления".
Так в том-то и задача, чтобы заснуть один раз, а потом только просыпаться и выключаться.
Спасибо сказали:
Аватара пользователя
Zeus
Сообщения: 694

Re: "Быстрый" запуск ОС и софта

Сообщение Zeus »

ddc писал(а):
13.12.2005 18:51
С суспендом можно такое проделать. Нужно только для этого иметь два swap-раздела.

Про два свапа я тоже думал: на одном "замороженный" образ с которого просыпаться, а второй - для работы.
А как многоголовые видяхи на это реагируют?
Просто на компе работает АРМ с полигоном управления, растянутым на несколько моников - один-то моник, наверное, заведётся, а вот остальные три-четыре... фиг знает, надо экспериментировать.

Nab писал(а):
13.12.2005 20:39
Вот такая штука есть
chpox-0.7.1.tar.gz (150Кб)

Спасибо. Тоже посмотрю на досуге :)

TuLiss писал(а):
13.12.2005 21:40
Вам нужно ускорить процесс загрузки компа? я правильно понял?

Так точно.

если да, то отключите половину сервесов и будет счастье.

Ровно половину? А если там нечётное количество? А если все отключить - вообще реактивно будет, да? :)
Всё что не нужно отключено.

У меня slackware грузится секунда 20 =)
(если не быстрее, без загрузки графики)

Ага, с разбегу.
Из них секунд 10 BIOS прочухивается и всё что там до LILO происходит.

А то , что в ищите это так называемый спящий режим, каким оброзом он вам поможет быстрее перезагрузить комп не понятно.

А что непонятного-то? Никакой загрузки собственно нет - просто копируется в память кусок данных с диска и передаётся управление на такой-то адрес (ну это упрощённо говоря).

WarlorD писал(а):
14.12.2005 00:47
Кстати вот а такой не скромный вопрос: а почему тема в разделе "программирование"?

Ну вообще-то предполагалось реализовать такую функциональность программно (в смысле - самому что-то напрограммить или ещё как). А тут уже готовые решения.
А куда её? В "Администрирование"?

возможно просто от тез ошибок или чего еще там вы не избавитесть, тк система полностью восстановит то. что было до "усыпления".

Задача-то как-раз каждый раз не усыплять.
Давишь Reset (аппаратный сброс), а ось не грузится по-полной, а восстанавливает когда-то один раз сохранённый рабочий, исправный образ.
Спасибо сказали:
Аватара пользователя
ddc
Бывший модератор
Сообщения: 3535
Статус: OpenBSD-compatible
ОС: OpenBSD -current

Re: "Быстрый" запуск ОС и софта

Сообщение ddc »

Zeus писал(а):
14.12.2005 10:47
А как многоголовые видяхи на это реагируют?
Просто на компе работает АРМ с полигоном управления, растянутым на несколько моников - один-то моник, наверное, заведётся, а вот остальные три-четыре... фиг знает, надо экспериментировать.
Думаю, разницы быть не должно. Идея ведь заключается в том, чтобы полностью восстановить систему - а память видюхи всё равно в каждый момент времени воспринимается заново открытыми приложениями как пустая.
Zeus писал(а):
14.12.2005 10:47
А что непонятного-то?
Просто в зависимости от степени оптимизации, объёма оперативной памяти и характеристик HDD swsuspend может оказаться медленней полноценной загрузки: ведь в одном случае в память переписывается с диска весь объём оперативной памяти, а в другом - только чуть-чуть + капля вычислений.
Спасибо сказали:
Аватара пользователя
Zeus
Сообщения: 694

Re: "Быстрый" запуск ОС и софта

Сообщение Zeus »

ddc писал(а):
14.12.2005 10:50
Zeus писал(а):
14.12.2005 10:47
А как многоголовые видяхи на это реагируют?
Думаю, разницы быть не должно. Идея ведь заключается в том, чтобы полностью восстановить систему - а память видюхи всё равно в каждый момент времени воспринимается заново открытыми приложениями как пустая.

Я не про видеопамять - туда-то понятно всё запишется, я - про инициализацию голов.
Сколько там было трахоборства с ними - это хорошо когда одна видяха к которой есть обкатанные дрова и устоявшаяся конфигурация, а когда две, да на разном чипсете... короче мороки с ними дофига.
Вот не повторится-ли она при такой "перезагрузке".

Просто в зависимости от степени оптимизации, объёма оперативной памяти и характеристик HDD swsuspend может оказаться медленней полноценной загрузки: ведь в одном случае в память переписывается с диска весь объём оперативной памяти, а в другом - только чуть-чуть + капля вычислений.

Не скажи: ведь заполнится тот же объём памяти (что загрузить, что просто слить из свопа), но только в случае загрузки ещё, действительно, всякие вычисления, конфигурирования и т.п.
По-крайней мере просыпается комп быстрее, чем грузится.
Спасибо сказали:
Аватара пользователя
ddc
Бывший модератор
Сообщения: 3535
Статус: OpenBSD-compatible
ОС: OpenBSD -current

Re: "Быстрый" запуск ОС и софта

Сообщение ddc »

Zeus писал(а):
14.12.2005 11:48
я - про инициализацию голов.
Ну инициализация голов, если я правильно понимаю, происходит один раз - при загрузке. А тут ты вспоминаешь уже загруженную систему с уже инициализированными головами...
Zeus писал(а):
14.12.2005 11:48
Не скажи: ведь заполнится тот же объём памяти (что загрузить, что просто слить из свопа), но только в случае загрузки ещё, действительно, всякие вычисления, конфигурирования и т.п.
Нет, в случае загрузки заполняется только низ памяти - меньше сотни мегабайт, по всей видимости. При просыпании восстанавливается бинарный образ всей памяти выше ядра. Само ядро инициализируется в обоих случаях. А хорошо сконфигурированная Ubuntu на X710s грузится быстрее, чем просыпается...
Спасибо сказали:
Аватара пользователя
Zeus
Сообщения: 694

Re: "Быстрый" запуск ОС и софта

Сообщение Zeus »

Ну инициализация голов, если я правильно понимаю, происходит один раз - при загрузке. А тут ты вспоминаешь уже загруженную систему с уже инициализированными головами...

Это СИСТЕМА (ядро, дрова еtc) "вспоминают", а для видяхи это будет обычный аппаратный сброс и она по-умолчанию заведёт одну, "главную" голову.

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

Ну посмотрим, поэкспериментируем.
Непонятно только зачем ВСЮ физическую память сливать в своп? Сохранять уж то, что юзается и всё.
И вот тогда получается без разницы - или оно "само" загрузилось, или его из свопа залили как образ.
Первое - даже дольше.

Ну ладно, переливать из пустое в порожнее смысла нет.
Надо экспериментировать (пока времени нет) ну и ждать кто ещё чего полезного напишет :)
Спасибо сказали:
vleo
Сообщения: 4

Re: "Быстрый" запуск ОС и софта

Сообщение vleo »

При пробуждении системы что будет устройствами, которые после запуска ядра шамянятся особым образом в /еtc/rc.d/rc.local ? Система ведь пробудится в то состояние, которое возникло ПОСЛЕ выполнениях всех-всех /etc/rc.d. А устройства после "пробуждения" будут в состоянии после аппаратного сброса. Значит нужно будет отлавливать событе пробуждения и выполнять всякие скрипты по перезапуску устройств и программ, которые не имеют функции для переустановки устройств в заданное состояние. Которые имеют - им придется посылать сообщение, что надо переустановить устройства.
Тем не менее у notebook-ов работает suspend/resume (иногда). Может быть, конечно там устройства сохраняют свое состояние во время suspend-a. А я что-то не припомню в модулях драйверов функций restart with given state.
Спасибо сказали: