SWAP — а что такое свап? и с чем его едят

На многих автомобильных форумах встречается выражение СВАП/СВОП (кто как пишет) двигателя/коробки передач … Что же это значит ? Оказывается все просто, как 2 пальца об асфальт. Swap (в переводе с англ.) — обмен, замена.
А что же такое свап, многие стесняясь спрашивают назначение этого слова когда его слышат из уст собеседника. А что же на самом деле означает это слово, аббревиатура или просто сокращение. Вот результаты моего исследования:
swap [swɔp] имеет вполне конкретный перевод "менять" казалось бы все стало на свои места, а вот и нет. Этого слова до сих пор нету ни в веки ни в другом толковом словаре.А мне кажется уже давно пора. Давайте постараемся вместе заполнить этот пробел своими размышлениями.
Ну вот к примеру:
сваппер имеет прямое отношение уже к непосредственному результату. Это может быть что угодно, по большому счету.
сваперы это уже непосредственно исполнители, звучит с двойным смыслом, но мы же и не отрицаем того что немного "повернутые" на автомобилях, ни их модернизации и улучшение имеющегося. С этим уже ни чего не поделаешь, такое уж у нас увлечение, это вам не марки собирать.
продолжаем =)
что нужно знать перед свапом
Q чем отличается свап от тюнинга?!
A тюнинг чаще всего применяется к уже установленным узлам и агрегатам, к примеру тюнинг двигателя (замена валов и т.п.) А СВАП это модернизация путем замены одного узла на другой не маленькой турбины на чуть побольше или огромную, а скорее всего что не было с завода вовсе, такого мотора или кпп
В автомобильном мире подразделяют 2 вида свапа:
1. SWAP engine — замена оригинального двигателя автомобиля на более мощный, например турбовый 2jz-ge на 2jz-gte. или же например м60в30 на м60в40 (если для вас это буквы и цыфры, дальше читать не стоит)
2. SWAP transmission — замена коробки передач, к примеру с автоматической на механическую, или же 5-и ступенчатой МКПП на 6-и ступенчатую.
Таким образом любая замена двигателя или коробки может обозначаться этим таинственным словом. Стоит отметить, что свап и тюнинг — это разные вещи и важно их отличать друг от друга. Тюнинг применяется к доработке уже установленных узлов и агрегатов автомобиля, в то время как свап — это непосредственно замена одного агрегата на другой. Другими словами: любой свап можно назвать тюнингом, подразумевая доработку автомобиля в целом, но не любой тюнинг попадает под определение слова свап. Запомните это! Правильно говорить СВАП, но почему-то автомобилисты произносят не правильное, как СВОП.
Engine swap зародился в Америке. Еще в тридцатые годы, во времена «сухого закона», бутлегеры использовали для доставки запрещенного алкоголя машины, под капот которых устанавливали более мощные моторы, позволявшие удирать от полиции. Второе пришествие «свапа» случилось в пятидесятые годы, когда в моду вошли хот-роды — старые машины с новыми многолитровыми двигателями, нередко форсированными. «Моторной комбинаторикой» занимались не только энтузиасты-одиночки, но и вполне авторитетные в автомобильном мире инженеры и целые компании. Достаточно упомянуть Кэрола Шелби, который взял максимально легкий кузов и установил в него семилитровую фордовскую «восьмерку» — так появилась на свет знаменитая Cobra, гроза суперкаров тех лет.
Engine swap и сейчас наиболее популярен в США. И не только у поклонников старых машин, но и среди владельцев современной техники. А если есть спрос, будет и предложение. В стране полно фирм, специализирующихся на продаже силовых агрегатов и их установке. По наиболее популярным вариантам замен выпускаются необходимые переходные детали и практические руководства для тех, кто желает произвести свап самостоятельно. Купить двигатель или продать освободившийся можно где угодно, базар, форум, барахолка что как назвать
Причина такой популярности свапа в том числе и в либеральности американских законов. На номер двигателя, если таковой даже имеется, никто не обращает особого внимания, поэтому замена силового агрегата проводится без бумажной волокиты. Достаточно соблюдать несложные правила, различающиеся от штата к штату. Например, в Калифорнии требуют, чтобы устанавливаемый мотор был не старше самой машины. Если же переделанный автомобиль выходит за рамки ограничений, все равно остается возможность его легализовать, представив на сертификацию в местную техническую службу. Впрочем, многие американцы не утруждают себя подобной процедурой, поскольку строят машины не для дорожного использования, а для участия в соревнованиях, будь то дрэг-рейсинг или дрифтинг.
В Европе и в Японии замена агрегатов контролируется жестче и требует оформления, но свап пользуется успехом и там. Уж больно соблазнителен результат — кардинальное улучшение динамики при относительно малых финансовых и трудовых затратах. Ведь чаще всего мотор на замену берется с разбитого автомобиля, а значит, не очень дорогой. И его монтаж порой куда проще, чем, например, установка турбонаддува или форсировка атмосферного мотора. Кроме того, вместе с двигателем можно установить и трансмиссию, рассчитанную на большие нагрузки. Наконец, новый двигатель можно тюнинговать, получив еще большую мощность! Хотя свап тоже далеко не всегда прост, и в нем хватает своих «подводных камней», зависящих от конкретной машины и двигателя. Все «операции по пересадке сердца» можно разделить на три степени сложности.
«Small block» — один из любимых двигателей у тех, кто делает свап в Америке. Будь то современная 5,7-литровая модификация с распределенным впрыском или снимаемый со старых машин карбюраторный вариант Любой более-менее серьезный свап не обходится без переделки выпуска
Вариант первый — установка силового агрегата с более мощной версии того же автомобиля. Самый простой случай, но и наименее эффективный. Действительно, стоит ли тратить силы и средства на постройку автомобиля, если такой же можно просто купить вместо имеющегося? Причем в большинстве случаев это окажется дешевле. С другой стороны, если «родной» двигатель «стуканул» или требует серьезного ремонта, есть смысл поменять его на более мощный. В США такой вариант особенно популярен среди владельцев японских машин. Они часто имплантируют моторы, которые продаются с пометкой «JDM» (Japanese Domestic Market — для внутреннего японского рынка), — более мощные, чем на американских Хондах, Тойотах (что не скажешь о 2jz), Ниссанах.
Подобный свап не требует сколь-нибудь серьезных доработок самой машины. Места установки нового силового агрегата и его вспомогательных узлов обычно либо совпадают со старыми, либо предусмотрены конструкцией кузова. В некоторых случаев даже не нужно менять электропроводку под новый блок управления.
Вариант второй — силовой агрегат от другого автомобиля той же марки, как правило, выше классом. Как тут не вспомнить фирму Brabus или AMG, впихивающую в компактные Мерседесы многоцилиндровые моторы от самых больших и мощных автомобилей с трехлучевой звездой. Или тюнеров баварских машин, строящих «трешки», а теперь и «единички» BMW с V-образными «восьмерками» под капотами. Нередко у производителя находится двигатель с незаурядными способностями, пользующийся среди тюнинговых ателье повышенной популярностью. Такой, например, как моторы от M3 и M5 у BMW, VR4 и 1.8 Turbo у концерна Volkswagen или турбированный 4G63 у Mitsubishi 1 или же 2jz и еще куча моторов, все перечислять до завтра будем.
Подобный автомобиль уже не купишь у ближайшего дилера. Но и работа по замене мотора дороже и существенно сложнее, чем в первом варианте. Особенно если, например, рядную «четверку» заменять на V-образную «восьмерку». Тут уж точно потребуются оригинальные опоры силового агрегата, переделка систем впуска и выпуска, установка большого радиатора. В наиболее экстремальных случаях не обойтись без переноса вспомогательных агрегатов и перекраивания моторного отсека, иначе новое сердце просто не влезет под капот. Для заднеприводного автомобиля приходится делать новый карданный вал. Как правило, новый силовой агрегат тяжелее, и это требует перенастройки подвески.
Вариант третий — мотор другой марки. Здесь к проблемам, присущим второму варианту, добавляется необходимость объединения электроники двигателя с электропроводкой автомобиля, а если нет возможности установить новый мотор вместе с трансмиссией — сложности его сопряжения с чужеродной коробкой передач.
Столь непростые работы мало оправданы с точки зрения затрат. Подобный свап обычно делают либо фанаты хот-родов, берущие за основу очень старые автомобили, либо тюнинговые фирмы ради демонстрации своего инженерного потенциала. Или же такие как мы "шизики" пихающие jz или uz и тому подобные моторы куда и зачем угодно, а самый главный вопрос зачем не всегда находит свое объяснение.
Ну а «высший пилотаж» свапа — замена силового агрегата с одновременным изменением всей компоновки машины. Например, когда на переднеприводном автомобиле мотор ставят продольно и делают ведущими задние колеса, а то и вообще переносят силовой агрегат назад. Лет пятнадцать назад в Америке умельцы сделали компактный автомобильчик Honda CRX с двумя моторами от Аккорда! Первый стоял на привычном месте под капотом, а второй — позади сидений, и каждый приводил в движение свою пару колес.
У тех, кто делает столь экстремальный свап, есть свои моторы-фавориты. Среди американских особым почетом пользуются V-образная фордовская «восьмерка» и знаменитый джиэмовский «small block», устанавливаемый на Chevrolet Corvette и Cаmaro. Среди японских — рядные турбированные «шестерки» с таких машин, как Toyota Supra и Nissan Skyline. Их популярность объясняется тем, что эти двигатели легко поддаются дальнейшей форсировке, позволяющей добиться еще более экстремальных результатов. Особо стоит упомянуть роторный мотор от купе Mazda RX-7. Он тоже легко форсируется за счет перенастройки турбонаддува или увеличения количества секций ротора. Но главный его козырь, позволяющий строить совсем экзотические автомобили, — компактность. Как вам, например, «трешка» BMW с турбированным роторным мотором мощностью почти 500 л.с?
В РФ или КЗ любой свап — экзотика. Во времена СССР заменой силовых агрегатов занимались только в гаражах КГБ и МВД. Тогда по Москве ездило несколько десятков неприметных черных Волг, под капотами у которых были моторы от представительской Чайки, а в салоне — рычаг автоматической коробки передач и бутафорская педаль сцепления.
И сегодня замена силового агрегата — не редкое явление в тюнинге, но тоже есть камни под водой. Во-первых, из-за строгих административных барьеров. Относительно легко можно легализовать только мотор от более мощной версии той же модели автомобиля. При перерегистрации в ГАИ будет достаточно предъявить справку-счет, подтверждающую законность покупки нового агрегата. Но, как показывает практика, подобный вариант в КЗ по большей части неэффективен экономически — поменять весь автомобиль целиком дешевле. Если же делать более серьезный Свап, при его легализации в ГАИ потребуют сертификат НАМИ, на получение которого потребуются время и, конечно, дополнительные средства.
Купить нужный силовой агрегат тоже не так просто. Если удастся найти разбитую машину с целым мотором, хозяин которой распродает ее по частям, — считайте, что вам крупно повезло. Подавляющее большинство продающихся на «разборках» двигателей — без документов, то есть с темным прошлым. Можно найти силовой агрегат за границей, благо Интернет полон предложениями на любой вкус. Но это покупка кота в мешке — по скупому описанию и нескольким фотографиям состояние мотора не определить. В этом смысле наиболее интересен японский рынок, где на специализированных аукционах продают узлы и агрегаты, прошедшие тщательную проверку. И зачастую они оказываются в прекрасном состоянии.
Таможенные пошлины на силовые агрегаты б/у относительно невелики. При этом заявлять, что двигатель куплен за сто долларов, бессмысленно — таможенники рассчитывают стоимость агрегата по собственным каталогам.
В общем, чтобы решиться на свап, нужно быть действительно увлеченным человеком. Причем не столько результатом, сколько процессом тюнинга, который может растянуться на несколько месяцев, а иногда и лет. Зато результат, как говорится, налицо — чтобы продемонстрировать его, достаточно открыть капот своего, теперь уже мощного, автомобиля…
Пять вопросов о…
Итак, вы хотите произвести свап на своем автомобиле и уже решили, какой мотор будет у него под капотом. Но перед тем как приступать к покупке и замене агрегата, неплохо бы, во избежание непредвиденных трудностей и затрат, ответить на несколько важных вопросов.
Менять только двигатель или силовой агрегат целиком?
В общем случае замена силового агрегата целиком предпочтительнее. Ведь оригинальная коробка передач лучше подходит мощному двигателю и по уровню нагрузок и, как правило, по передаточным числам. Кроме того, подобный свап может сопровождаться приятными дополнениями вроде самоблокирующегося дифференциала.
К сожалению, замена агрегата целиком не всегда возможна — например, когда мотор изначально продольный устанавливается поперечно.
Поместится ли новый агрегат в подкапотное пространство?
От этого в громадной степени зависит сложность и трудоемкость работ, поэтому перед их началом мотор и подкапотное пространство обязательно нужно промерить. Но в целом как я всегда говорю, не впихуемого не бывает… Наиболее частая проблема, связанная с размерами двигателя, — не закрывающийся после его установки капот. И если она сравнительно просто решается методами «пластической хирургии», то резка лонжеронов, доработка подрамника или моторного щита — работа куда более сложная, связанная с прочностью и сохранением геометрии кузова.
Как правильно закрепить двигатель под капотом?
Автомобильные инженеры всегда тщательно рассчитывают и точки крепления силового агрегата, и жесткость его опор. Двигатель при работе неизбежно вибрирует и заметно смещается под нагрузкой. Стоит сделать что-то не так — и эти вибрации будут передаваться в салон, разрушать опоры, а то и сам кузов. А при резком старте или торможении двигатель может ударяться о моторный щит, капот, лонжероны, балку или рулевую рейку.
Какие вспомогательные узлы и детали понадобятся?
Лучший вариант покупки силового агрегата — в полностью укомплектованном виде, со всеми навесными агрегатами, опорами, датчиками, проводкой и обязательно с блоком управления. Но если под капот устанавливается мотор той же марки, на многих дополнительных деталях можно сэкономить, поскольку генератор, насос гидроусилителя и компрессор кондиционера зачастую унифицированы и могут подойти от старого двигателя. (но все же покупать лучше свап комплект) или же лучше не заморачиватся этим в обще) В то же время могут понадобиться порой неожиданные замены — например, колесных ступиц или, упирающегося в подрамник подвески.
Во сколько обойдется свап?
ахахахаха, тут вам точно не кто не скажет. поскольку тюнинг закончить невозможно
Определив объем работ по замене силового агрегата, неплохо бы оценить их, хотя бы приблизительно, с финансовой точки зрения. Понятно, что основные затраты придутся на сам двигатель, который может стоить и несколько сотен долларов, и несколько тысяч. Все зависит от его комплектации и состояния. Но в любом случае к предполагаемой смете нужно прибавить 20-30%, а вообще посчитал допустим 3500$ надо добавить еще как минимум половину. проверенно не раз! На непредвиденные расходы… С тем чтобы дать себе ответ на главный вопрос: а стоит ли игра свеч?
Типовой вариант
Как говаривал классик, теория без практики мертва. Насколько сложен свап в реальности? Вот пример из жизни.
Например я, решив поменять родной 6g74 на 2 jz gte vvt-i. даже я свапнув не один десяток машин, не знал до конца всех подводных камней, в каждой машине они свои, даже свапнув допустим подряд 2 БМВ е34 на 2jz в первой и во второй можно нарваться на разные сложности.
Перейдем назад к монтерику…
Даже я зная что свап это на посчитанный бюджет надо добавить половину и еще 500, не уложился в сумму.
Называть ее даже боюсь, узнает "жена" убьет.
Так вот, есть косяки учесть которые очень трудно, например когда я варил опоры на балке я мерил блок и головку без турбин, ( поскольку мотор рядная шестерка, а стоял в-образная шестерка, он очень длинный. его нужно было засунуть как можно дольше в нутрь машины) и после установки турбин у меня был провал, задняя турбина упиралась немного в моторный щит.
Кувалдометр и деревяшка решили проблему, а вот после перехода на биг сингл стало видно и не красиво ( а я очень боролся за красотой под капотом, похоже буду еще раз краситься… =(
И еще очень много подобных даже мелочных ситуаций, но не дающих жить спокойно, поэтому я вам говорю подумайте 100000 раз прежде чем свапаться, а если вы даже в тиории не знаете как все это будет выглядеть, то самостоятельно это точно не для вас, а лучше всего обратиться к спеца, в случае чего будет с кого спросить за те или иные косяки, а так же быстро их устранить…
И да, без косяков не как, даже 100 000 раз свапнув один и тот же мотор не возможно все учесть, сколько примеров когда целые концерны с не одним десятком инженеров попросту "лохуются" и отзывают машины с недочетами, а тут один или два "дяди васи" в гараже в ваш станый ниссанчик года 80 пихаю что-то из турбо шестерок сил на триста или ви8, которого отродясь там не должно было пыть, относитесь к сваперам с пониманием… за раз не сделают… всегда что-то гдето побежит, потечет, или еще что страшнее ( пока не случалось вроде =)
Getting Started¶
The SWAP algorithm was developed by [Phil Marshall et al.](https://github.com/drphilmarshall/SpaceWarps/raw/master/doc/sw-system-published.pdf), and the original implementation of the algorithm that provided the motivation for this work can be found [here](https://github.com/drphilmarshall/SpaceWarps).
The [caesar_external](https://github.com/miclaraia/caesar_external) library provides functionality for interacting with live classifications from Panoptes and Caesar in the Zooniverse. Installing this library activates these features in swap.
Installation¶
Automatic Installation¶
Clone the repository:
Install with python pip:
We recommend doing this in a virtual environment, so use whatever method suits you to set that up.
Configuring SWAP¶
SWAP can be used with multiple projects at the same time, each project must have its own unique identifier. This identifier should be used anywhere that $
To configure a new project with swap, start with the command:
This will bring up a python interpreter, which you can use to interact with the config object. The config object lets you set configure how swap should parse the csv classification dump from panoptes. Each project will have a different task key, and different labels that are used in the actual classification. The config annotation field has subfields ‘task’ , ‘true’ , and ‘false’ to configure this. This is an example of how this might be set up:
Other configuration options:
| Name | Description |
|---|---|
| config.annotation.task | Task label, like T0, T1, … |
| config.annotation.value_key | |
| config.annotation.value_separator | |
| config.annotation.true | Expected classification value for a real detection. |
| config.annotation.false | Expected classification value for a bogus detection |
| config.mdr | Missed detection rate used to draw the decision boundaries for retirement. |
| config.fpr | False Positive rate used to draw the decision boundaries for retirement. |
Running SWAP¶
Start by initializing swap’s gold labels by running:
The csv file should have two columns labeled subject and gold . The gold label column should have a 1 for real subjects and a 0 for bogus subjects. Only one row per subject.
Then run swap on a panoptes csv dump with:
If swap runs out of memory during the process, you can split the csv into batches in a script and run swap.truncate() between batches. This clears the classification history for each user and subject tracked by swap, keeping only enough information to use as priors and keep making accurate predictions.
Note that in order to preserve memory and time, SWAP first loads classifications
from the csv dump, then updates all the user scores at once, then updates all subject scores using the resulting user scores. This is different from how SWAP was originally envisioned in literature, but this is faster and saves resources.
A lot of the swap ui commands end by opening a python interpreter, which allows you to inspect the resulting data before closing. The resulting scores are automatically saved on each run, which pickles a json blob of the configuration, subject data, user data, and the score thresholds used for retirement decisions.
Online swap¶
Swap can be configured to run in online mode, where it queries classifications from zooniverse and sends swap scores as reductions to caesar. The classifications can either be queried through the panoptes api, or through caesar in conjunction with Amazon’s Simple Queue Service.
Start by deciding how you will authenticate with zooniverse. You’ll probably either want to configure this to use environment variables containing your Zooniverse username and password, or configure to use an OAuth client id and secret pair. Alternatively you will be asked for your zooniverse username and password every time a command is run. Store username and password in $PANOPTES_USERNAME and $PANOPTES_PASSWORD , and store client id and secret in $PANOPTES_CLIENT_SECRET and $PANOPTES_CLIENT_ID . API keys can be generated through the Zooniverse OAuth provider with urn:ietf:wg:oauth:2.0:oob as the callback URI.
Next you should run the configuration command. The syntax for the command is described below. To configure this module to get classifications from caesar, specify the sqs queue caesar has been configured to dump classifications into. If this is not specified then classifications will be fetched from panoptes. Caesar must be configured to accept reductions from an external source using a placeholder reducer. The name given to the reducer in caesar’s config should be entered for caeesar_name .
Caesar Config Command Reference¶
Now point swap to the right caesar_external configuration you just set up. The command to do this is specified below.
Finally run swap in online mode. You can use either of the following commands. The first fetches all classifications and posts reductions. The second runs the process in a loop (WARNING this is still experimental).
swap (своп) или файл подкачки
Своп (swap) — это файл, либо раздел, т.е. определенное место на жестком диске (HDD), которое используется для «выгрузки» в него неиспользуемых страниц из оперативной памяти. Не зацикливайтесь на словосочетании «страница памяти» — это не столь важно на данный момент, ибо это уже углубление в принципы действия, которые вам не нужны на данном этапе и могут вообще не понадобится.
Говоря же простым языком, в своп из оперативной памяти выгружается вся та информация, которая на данный момент не используется и к которой уже какое-то время не обращается ни одна программа. Т.е. своп в каком-то смысле создает дополнительный объем для вашей оперативной памяти, в который выгружается все ненужное на данный момент, но то, что может в скором времени понадобится какой-либо программе.
Думаю, многие знают и понимают, что HDD обладают в разы меньшим быстродействием, чем оперативная память и у вас может возникнуть логичный вопрос — зачем же использовать заведомо более медленное устройство?
Дело тут в том, что не возможно предусмотреть и предугадать объем оперативной памяти на каждом компьютере, а так же количество программ и процессов, которые будут запущены одновременно. Отсюда возникают ситуации, когда на некоторых компьютерах какая-либо программа может работать нормально, а на некоторых компьютерах появится проблема недостатка памяти.
Как раз для решения проблемы недостатка памяти и было придумано организовать специальное место на HDD — своп, в которое бы выгружалась вся ненужная на данный момент информация из оперативной памяти, освобождая место для активных программ и информации, которая используется на данный момент.
Если же к этой выгруженной в своп информации вновь поступает запрос, она загружается обратно в оперативную память, а из свопа удаляется, или просто поверх нее записывается что-то другое. А из-за того, что своп находится в одном и том же месте на HDD, время на поиск нужной информации минимально и не сравнится с процессом поиска, обработки и загрузки этой информации по-новой из директории программы.
С тем, что такое своп и зачем он нужен вроде бы разобрались. =) Надеюсь я не слишком вас утомил, ибо я старался объяснить подробнее и более простым языком, получилось у меня или нет уже вы мне скажете.
Теперь давайте перейдем к настройке самого своп-файла.
В операционных системах на базе ядра Linux swap — представляет из себя специальное место на жестком диске, которое создается еще на стадии разметки диска при установке операционной системы. В Windows же дела обстоят иначе, тут swap представляется из себя файл pagefile.sys, который является скрытым системным файлом. Он располагается в файловой системе на одном или на нескольких логических дисках. И тут кроется с одной стороны преимущество, но с другой стороны и недостаток.
Преимущество такого решения в том, что можно мгновенно изменять размер свопа, но значительный недостаток кроется в том, что файл подкачки может фрагментироваться, т.е. разбиться на части, из-за других файлов, находящихся на логическом разделе. Подробнее о фргаментации вы можете прочитать в этой статье.
Поэтому для Windows есть определенный ряд правил и рекомендаций, которые нужно выполнять, если вы хотите что бы ваш компьютер нормально работал и не терял производительность из-за фрагментации своп-файла.
Практические советы по настройке своп-файла (файла подкачки) в ОС Wnidows
Где и как расположить файл подкачки?
Какого размера должен быть файл подкачки?
Размер файла подкачки обязательно должен быть фиксированным, т.е. «Исходный размер» и «Максимальный размер» должны быть идентичными. Таким образом мы исключим возможную фрагментацию файла подкачки при разрастании от «Исходного» до «Максимального» размера.
Объем RAM Размер swap-файла
256МБ 1024МБ
512МБ 2048МБ
1024МБ-2048МБ 4096МБ
3072МБ-4096МБ 6144МБ-8192МБ
8192МБ и более можно указать минимальный размер (по-сути он не нужен, но
многие программы требуют его наличия)
Записки IT специалиста
Linux — начинающим. Что такое пространства подкачки и как они работают
- Автор: Уваров А.С.
- 22.04.2022
Подкачка, она же swap или своп — понятие знакомое каждому, вне зависимости от того с каким семейством ОС приходится работать. Да и представление о процессе вроде бы имеется. Именно, что «вроде бы», если спросить, как работает пространство подкачки, то услышим стандартные фразы про недостаток памяти и сброс второстепенных страниц на диск. А можно и вообще услышать, что памяти сегодня много и подкачка не нужна. Так ли это на самом деле или происходящие процессы гораздо более глубоки? Давайте разбираться.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Начнем с того, что процессор может исполнять код и обрабатывать данные только после их помещения в оперативную память (далее просто память), которая организована в виде набора адресуемых сегментов — страниц. Минимальный размер страницы для 32-битного процессора x86 — 4 КБ, современные системы могут работать со страницами большего размера.
На заре развития вычислительной техники памяти было немного и остро стоял вопрос ее эффективного использования, тогда же возникло предложение использовать для хранения страниц не только оперативную память, но и специально размеченное место на дисковых накопителях. Это позволяло при недостатке памяти вытеснить на диск редко используемые страницы и освободить память для работающих приложений. Данный процесс и получил название подкачки. Общий объем физической памяти и пространств подкачки называется виртуальной памятью.
Собственно, для системы нет никакой разницы, где находится требуемая страница: в памяти — хорошо, в пространстве подкачки — придется предварительно считать ее оттуда в память. Чтение с дисков — операция медленная (по сравнению с доступом к памяти) и поэтому вы можете заметить, что, развернув свернутое приложение приходится некоторое время подождать пока оно начнет нормально работать и при этом идет интенсивный обмен с диском.
Конечно, тормоза многих раздражают, но лучше пусть система время от времени тормозит, нежели глухо виснет только потому, что вы случайно исчерпали всю доступную память. Это самые общие черты, которые знает практически каждый, а вот дальше уже идут тонкости.
Особенности использования памяти в Linux
Управление памятью — сложная тема, поэтому мы будем использовать максимально упрощенную модель, достаточную для понимания происходящих процессов. Начнем с памяти приложений, это просто и понятно — при запуске приложение загружает в память собственный код, код связанных библиотек, обрабатываемые данные. Именно этот объем памяти мы видим, как занятый в простых утилитах, таких как Системный монитор.
![]()
Чем больше мы запускаем приложений и чем больше данных они обрабатывают — тем выше будет объем занимаемой ими оперативной памяти, остальную память принято считать свободной, но это не так.
Почему? Обратимся к устройству файловой системы Linux, которая реализована в виде отдельного уровня абстракции — виртуальной файловой системы (VFS), которая позволяет работать с самыми различными носителями и физическими файловыми системами абсолютно прозрачно для ОС и приложений. Когда программа хочет что то прочитать или записать на диск, то ей абсолютно все равно что это такое: быстрый SSD с ext4 или флешка с FAT32, она обращается к VFS, а именно та уже через драйвер файловой системы осуществляет запись или чтение с нее.
Все ресурсы VFS хранятся в оперативной памяти, а так как дисковые операции достаточно дороги, то VFS активно кеширует данные в той же оперативной памяти, это очень важный момент, так как кеш VFS очень серьезно влияет на производительность системы. Вспомните, как долго осуществляется отображение содержимого папки с большим количеством файлов при первом входе в нее и как быстро происходит повторное открытие.
Фактически за использование оперативной памяти в Linux постоянно конкурируют между собой приложения и кеш VFS, при этом однозначно отдать кому-то предпочтения нельзя, любая крайность будет негативно влиять на производительность.
Если мы возьмем более профессиональные инструменты, то сможем увидеть, что значительный объем «свободной» памяти используется под кеш.
![]()
А что будет, если оперативной памяти станет не хватать? Самый простой вариант — сбросить кеш, это можно сделать быстро и без особых затрат. Но это не всегда хороший вариант, да и как быть, если памяти не хватает VFS-кешу? Выгрузить какое-то приложение нельзя, для этого потребуется завершить процесс, что делать? И тут на помощь приходят пространства подкачки, зачем закрывать приложение, если можно выгрузить его страницы на диск, особенно если это приложение в данный момент не активно. Таким образом мы можем выделить нужное количество памяти под VFS-кеш без ущерба для производительности.
Именно этим объясняется использование пространств подкачки при наличии «свободной» оперативной памяти, этот момент приводит в недоумение многих начинающих администраторов. Но если же мы заглянем немного глубже, то увидим, что на самом деле «свободная» память далеко не свободна.
Проведем небольшой эксперимент. На его начало у нас было открыто и свернуто несколько приложений, включая браузер и графический редактор GIMP с загруженным в него 4К изображением. Посмотрим расклад по памяти:
![]()
Итак: занято 2,36 ГБ, используется кешем 1,3 ГБ и в подкачке 578 МБ. Теперь распакуем какой-нибудь достаточно большой архив, в нашем случае около 1 ГБ включающий около сотни файлов различных типов и размеров. И снова посмотрим на статистику:
![]()
А здесь мы увидим достаточно неожиданную картину: объем занимаемой памяти уменьшился, зато объем выделенный под кеш вырос, так же часть страниц была сброшена в своп. Если взять калькулятор и выполнить грубые прикидки, то увидим, что размер кеша вырос примерно на 400 МБ, часть этой памяти была взята из небольшого количества свободной, а другая часть была освобождена путем вытеснения части страниц в подкачку.
Благодаря этому система быстро выполнила требуемую дисковую операцию, но потом мы испытали некоторую задержку разворачивая GIMP. Но это вполне разумная плата за сохранение общей производительности системы.
Здесь стоит обсудить еще один вопрос: реальную и воспринимаемую производительность. Если нам требуется вытащить приложение, на которое мы переключаемся из подкачки, то это займет некоторое время, что ухудшит воспринимаемую производительность, но на реальную никак не повлияет, будучи загружено обратно в память приложение будет работать также быстро.
В настольных системах между реальной и воспринимаемой производительностью нужно найти оптимальный баланс. Мало кому понравится тормозящий интерфейс, но еще меньше понравится реальное замедление работы приложений, хотя они будут очень отзывчивы, из-за того, что ради этого пришлось сбросить VFS-кеш.
Swappiness
Это параметр sysctl, задающийся в файле /etc/sysctl.conf и позволяющий установить приоритеты доступа к оперативной памяти. Он может принимать значения от 0 до 200, значение по умолчанию равно 60. Что это означает? При значении равным 100 считается что стоимость подкачки и стоимость дискового ввода-вывода равны и поэтому подкачка будет использоваться всегда, если кешу VFS требуется место в памяти, но точно также кеш будет сбрасываться, если память понадобилась приложениям.
При значениях менее 100 память приложений имеет приоритет, так при значении в 60 получается, что стоимость подкачки на 40% дороже, чем дисковый ввод-вывод и система будет стараться не свопить до определенного предела. Очень грубо этот параметр в диапазоне от 0 до 100 можно рассматривать как минимальный процент свободной оперативки при котором начнет работать подкачка.
При значении в 60 система начнет вытеснять страницы приложений в подкачку после того, как останется свободной менее 60% памяти, при 100 — подкачка будет работать всегда. Если выставить значение в ноль, то это не отключит подкачку, но она не будет использоваться до последнего, в критической ситуации система все-таки начнет сбрасывать страницы на диск, чтобы сохранить приемлемый уровень производительности.
Значения свыше 100 куда более интересны, хотя на первый взгляд практического смысла в них нет. Однако это не так, допустим у вас есть система, которая грузится с быстрого NVMe диска, но основная работа происходит с данными на HDD. Скорость современных жестких дисков доходит до 200 МБ/с, а даже самый простой NVMe свободно дает от 1500 МБ/с. Так может лучше скинуть своп на NVMe, чем вытеснять VFS-кеш?
Именно так, поэтому берем в руки калькулятор и считаем. По грубым прикидкам NVME в 8 раз быстрее. Поэтому:
Вычислить x несложно, его значение будет 22,22, теперь можем узнать 8x — это будет 177, именно это значение мы должны задать в опции swappiness если хотим агрессивно сбрасывать страницы приложений в быстрый своп ради сохранения высокой реальной производительности.
Например, вы работаете с виртуальными машинами VirtualBox расположенными на HDD, поэтому вам более интересно вытеснить в пространство подкачки данные приложений, скажем браузера, чем потерять кеш VFS, который вызовет тормоза в виртуальной машине. При этом NVMe обеспечит быструю скорость извлечения данных, и вы не почувствуете дискомфорта переключившись на браузер.
VFS cache pressure
Это еще одно значение sysctl, оно означает приоритет кеша VFS перед страницами приложений. Значение в 100% обозначает паритет, дисковый кеш и приложения имеют равный вес и вытесняются в зависимости от иных настроек.
Но если мы хотим это изменить, то нужно в /etc/sysctl.conf задать опцию
При увеличении этого числа мы получим более агрессивную политику ядра по отношению освобождения памяти занятой под дисковый кеш. Если мы хотим в 10 раз активнее освобождать кеш VFS, то следует задать значение опции равным 1000, в 100 раз — 10 000. При уменьшении значения ядро, наоборот будет избегать освобождения памяти занятой под кеш. И если установить данную опцию в ноль, то кеш VFS никогда не будет освобождаться, что может спровоцировать опасную ситуацию, когда память в системе действительно закончится.
Мы не рекомендуем изменять данный параметр без четкого понимания что именно вы делаете и зачем.
Создание и использование пространств подкачки
Классическим для Linux является использование раздела подкачки, который выделяется, обычно, в конце диска и особым образом размечается. Для этого используется особый тип файловой системы 82 (область подкачки Linux). Если вы создали раздел подкачки при установке системы, то больше ничего делать не нужно. Если же вы хотите добавить в подкачку еще один раздел, скажем sde5, то выполните одну простую команду:
Затем включите подкачку на этом разделе, перезагрузка системы не потребуется:
Чтобы автоматически подключать раздел подкачки при монтировании добавьте в /etc/fstab строку:
Однако современные системы не приветствуют монтирование устройств по их наименованию, потому что в случае изменения конфигурации наименования дисков и разделов на них могут измениться, поэтому более правильным будет использовать для монтирования UUID, прежде всего узнаем его:
Затем изменим запись монтирования в fstab следующим образом:
Где вместо <UUID> подставьте полученный на предыдущем шаге идентификатор.
Современные системы все чаще отказываются от отдельного раздела подкачки отдавая предпочтению файлу. Это имеет ряд преимуществ в простоте и гибкости использования — изменить размер файла гораздо легче чем раздела. В остальном никакой разницы между ними нет, файл и раздел подкачки работают одинаково.
Для создания файла можно воспользоваться командой:
Или старым добрым dd:
В обоих случаях мы создадим файл размером 4 ГБ, сразу ограничим права на него:
А дальше точно также:
Для его постоянного монтирования добавьте в /etc/fstab запись:
Кстати, при помощи файла можно временно увеличить пространство подкачки, например, для выполнения какой-то ресурсоемкой разовой работы. Просто создайте и подключите еще один файл, а закончив — отключите его:
Если в системе создано несколько пространств подкачки, вне зависимости от того разделы это или файлы, то обращение к ним происходит по принципу чередования, что позволяет увеличить общую производительность подкачки, но бывают случаи, когда использование пространств нужно указать явно. Допустим у нас есть раздел подкачки на старом HDD и файл на новом быстром NVMe, нам, конечно же, хотелось бы сначала использовать своп на быстром диске, а только по его заполнению переходит на медленный жесткий.
Для этого добавим в опции монтирования еще один параметр — приоритет: минимальный приоритет 0, максимальный 32767. Чем выше приоритет, тем предпочтительнее использование данного пространства, для нескольких пространств с одинаковым приоритетом будет использоваться чередование.
Таким образом вы можете создать пространство подкачки из множества частей и достаточно тонко настроить их использование. Скажем, небольшой файл на NVMе с максимальным приоритетом, файл побольше на обычном SSD и большой файл на HDD, приоритет которого установлен на минимум.
Пространства подкачки и SSD
В настоящий момент SSD не роскошь, а основной тип накопителя для ПК, рабочих станций и серверов и поэтому нужно использовать их возможности на полную. Советы убирать с SSD подкачку, временные файлы и т.д. и т.п. кроме как вредными назвать нельзя. Поэтому размещать подкачку на SSD не только можно, но и нужно. Единственный момент, для разделов подкачки следует включить использование TRIM, для этого в опции монтирования добавьте discard:
Обратите внимание, что данная опция нужна только для разделов подкачки, для файлов она не имеет никакого смысла.
Спящий режим и пространства подкачки
Спящий режим (гибернация) — особый режим завершения работы системы, когда все содержимое оперативной памяти сохраняется на жесткий диск и может быть восстановлено при включении компьютера. В Linux для этих целей используются пространства подкачки, в них вытесняются занятые страницы памяти, сохраняются настройки устройств и только после этого компьютер выключается.
При включении, если система обнаруживает в подкачке сохраненный образ памяти, то вместо нормальной загрузки начинается его восстановление. Таким образом вы получите полностью рабочее состояние компьютера со всеми открытыми программами и документами.
Использование спящего режима предъявляет особые требования к размеру пространств подкачки, они должны быть способны вместить полный объем оперативной памяти, настройки устройств и собственное содержимое подкачки, если оно используется системой (а как мы видели — оно используется).
Кроме того, при большом объеме оперативной памяти сброс ее на диск при выключении и восстановление при включении может занимать продолжительное время и может оказаться, что быстрее закрыть приложения и нормально выключить компьютер, а по включении просто заново все открыть.
Какой размер файла подкачки выбрать?
Единого мнения на этот счет не существует, но есть определенные наработанные практики, которые позволяют дать рекомендации. Наиболее подробно они приведены в документации Fedora и мы приведем именно их:
| Объем ОЗУ в системе | Рекомендуемый размер подкачки | При использовании спящего режима |
|---|---|---|
| Менее 2 ГБ | 2 х ОЗУ | 3 х ОЗУ |
| 2 ГБ — 8 ГБ | ОЗУ | 2 х ОЗУ |
| 8 ГБ — 64 ГБ | 0,5 х ОЗУ | 1,5 х ОЗУ |
| Более 64 ГБ | зависит от нагрузки | спящий режим не рекомендуется |
Но приведенные значения не догма и могут быть пересмотрены исходя из реальных нагрузок. Так если использовать 4 ГБ подкачки для системы с объемом ОЗУ 2 ГБ выглядит нормально, то выделять 32 ГБ для системы с 64 ГБ ОЗУ выглядит излишеством, поэтому изучите реальный режим работы системы и скорректируйте размер пространства подкачки исходя из реальных запросов. Именно в этой ситуации и становятся удобны файлы подкачки — их размер очень легко менять.
Заключение
Конечно же это не все возможности, которые предоставляют пространства подкачки в Linux, многое оставлено за кадром просто потому, что объем статьи не позволяет все это вместить. Но приведенные данные являются необходимым минимумом для каждого системного администратора, который выбрал Linux как одну из используемых операционных систем.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Дополнительные материалы:
Помогла статья? Поддержи автора и новые статьи будут выходить чаще:
![]()
Или подпишись на наш Телеграм-канал: ![]()