URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 75554
[ Назад ]

Исходное сообщение
"Объем swap в Linux 64 bit"

Отправлено Romul , 06-Авг-07 18:57 
Здравствуйте.
Подскажите, пожалуйста, есть ли ограничение в Linux на объем используемого swap?
В частности, можно ли на системе с 1Гб ОЗУ, задать swap, например, 8 Гб ?
Используется Linux slamd64, но это не принципиально.

Заранее спасибо.


Содержание

Сообщения в этом обсуждении
"Объем swap в Linux 64 bit"
Отправлено Oyyo , 06-Авг-07 19:53 
>Здравствуйте.
>Подскажите, пожалуйста, есть ли ограничение в Linux на объем используемого swap?
>В частности, можно ли на системе с 1Гб ОЗУ, задать swap, например,
>8 Гб ?
>Используется Linux slamd64, но это не принципиально.
>
>Заранее спасибо.

а нужно ли?
# free
             total       used       free     shared    buffers     cached
Mem:        775712     758780      16932          0     146160     243564
-/+ buffers/cache:     369056     406656
Swap:      1048784        640    1048144

я даже не помню было-ли когда нибудь Swap used 1Мб,
машина работает в качестве роутера + биллинг + ВЕБ сервер + ФТП
и 90% времени загружены иксы КДЕ, вывод показаний снят с загруженными иксами


"Объем swap в Linux 64 bit"
Отправлено Romul , 06-Авг-07 20:39 
>а нужно ли?

К сожалению (или к счастью :) ) нужно.
Специфическая задача - входной объем данных(результаты измерений) велик (в данный момент, от 8 до 40 Гб и с перспективой роста) , находятся они удаленном сервере, по ним требуется осуществлять почти что случайный поиск. Один из способов - прочитать все данные в "память". Есть еще способы, но они потребуют других затрат.

Похоже, я поспешил с вопросом. Надо было попробовать, но успел начитаться в поиске про 2 Гб ограничение...
Результаты при помощи команды swapon вполне положительные - swap задается, приложению доступен весь суммарный объем виртуальной памяти.


"Объем swap в Linux 64 bit"
Отправлено anonymous , 06-Авг-07 20:45 
>>а нужно ли?
>
>К сожалению (или к счастью :) ) нужно.
>Специфическая задача - входной объем данных(результаты измерений) велик (в данный момент, от
>8 до 40 Гб и с перспективой роста) , находятся они
>удаленном сервере, по ним требуется осуществлять почти что случайный поиск. Один
>из способов - прочитать все данные в "память". Есть еще способы,
>но они потребуют других затрат.

Возможно следует сохранять данные в файл и использовать mmap()?  Все равно данные фактически будут находиться на диске, только не в файловой системе, а в свапе.  Тем более что на жёстком диске даже как-то надёжнее в случае сбоя программы.


"Объем swap в Linux 64 bit"
Отправлено Romul , 06-Авг-07 21:05 
>Возможно следует сохранять данные в файл и использовать mmap()?  Все равно
>данные фактически будут находиться на диске, только не в файловой системе,
>а в свапе.  Тем более что на жёстком диске даже
>как-то надёжнее в случае сбоя программы.

При использовании файла, не очень ясно - где этот файл должен размещаться. Может не хватить свободного места на одном устройстве, может не хватить прав пользователю, пользователь может по незнанию выбрать для файла примонтированый сетевой раздел.. Swap вроде как избавляет от таких проблем - его однажды настроит администратор, и он может состоять, как я понял, из множества кусков.
Надежность у файла теоретически выше, но если произойдет сбой - вероятнее всего, придется загружать данные и пересчитывать заново - слишком неочевиден процесс "подцепляния" старого файла, и неизвестно, на каком шаге остановились вычисления.

mmap подходит, когда данные лежат локально (или на дисковом массиве), т.е. для сервера в моем случае.


"Объем swap в Linux 64 bit"
Отправлено anonymous , 06-Авг-07 21:53 
>[оверквотинг удален]
>>данные фактически будут находиться на диске, только не в файловой системе,
>>а в свапе.  Тем более что на жёстком диске даже
>>как-то надёжнее в случае сбоя программы.
>
>При использовании файла, не очень ясно - где этот файл должен размещаться.
>Может не хватить свободного места на одном устройстве, может не хватить
>прав пользователю, пользователь может по незнанию выбрать для файла примонтированый сетевой
>раздел.. Swap вроде как избавляет от таких проблем - его однажды
>настроит администратор, и он может состоять, как я понял, из множества
>кусков.

Далеко не у каждого в системе _уже_ есть 8Gb+ свапа.  А учитывая то, что свап -- это отдельный раздел, то для создания свапа "традиционным" способом нужно переразбивать диск.  Можно конечно же записывать свап в обычный файл, но это фактически то же самое, что и сама программа записывала бы данные в файл, только создаёт лишнюю нагрузку на подсистему виртуальной памяти и ввода-вывода ядра.

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

А действия админа нужны в любом случае -- что при создании свапа, что при выдаче прав на каталог на разделе, где есть место, что при создании дискового массива (хотя он нужен только если данных действительно много, диски 400Gb сейчас стоят вполне нормальных денег).

>Надежность у файла теоретически выше, но если произойдет сбой - вероятнее всего,
>придется загружать данные и пересчитывать заново - слишком неочевиден процесс "подцепляния"
>старого файла, и неизвестно, на каком шаге остановились вычисления.

ИМХО, любая серьёзная программа, производящая длительные вычисления должна иметь способ восстановления после сбоя.  Даже если написать 100% безглючную программу, остаётся масса вариантов сбоя: начиная от kill -9 по незнанию или случайности, заканчивая тем, что юзер Вася зацепил ногой шнур питания.

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



"Объем swap в Linux 64 bit"
Отправлено kolyashkin , 06-Авг-07 22:55 
>[оверквотинг удален]
>Специфическая задача - входной объем данных(результаты измерений) велик (в данный момент, от
>8 до 40 Гб и с перспективой роста) , находятся они
>удаленном сервере, по ним требуется осуществлять почти что случайный поиск. Один
>из способов - прочитать все данные в "память". Есть еще способы,
>но они потребуют других затрат.
>
>Похоже, я поспешил с вопросом. Надо было попробовать, но успел начитаться в
>поиске про 2 Гб ограничение...
>Результаты при помощи команды swapon вполне положительные - swap задается, приложению доступен
>весь суммарный объем виртуальной памяти.

Может проще с сырым устройством работать или с файловой системой?