candy swap что это
существительное
глагол ↓
Мои примеры
Словосочетания
Примеры
We need to swap ideas.
Нам нужно обменяться идеями.
Will you swap places, please?
Пожалуйста, поменяйтесь местами.
We can do a swap if you like.
Мы можем поменяться, если хотите.
I like your doll better; let’s do a swap.
Твоя кукла мне больше нравится, давай меняться.
He swapped clothes with his brother.
Он поменялся одеждой со своим братом.
The girls sat, swapping gossip.
Девушки сидели и сплетничали.
I wonder if we could swap?
Интересно, мы могли бы поменяться?
He swapped his car for public transport.
Он пересел на общественный транспорт.
They decided to swap roles for the day.
Они решили на день поменяться ролями.
Do you think we could swap the bookcase with the sofa?
Как думаешь, можно поменять местами книжный шкаф и диван?
He swapped his watch for a box of cigars.
Он обменял свои часы на коробку сигар.
Never swap horses while crossing the stream. посл.
Коней на переправе не меняют.
Will you swap places?
Не поменяетесь ли вы местами?
We need to get together to swap ideas and information.
Мы должны собраться вместе, чтобы обменяться мыслями и информацией.
He swapped his cupcake for a candy bar.
Он поменял свой кекс на шоколадный батончик.
I swapped seats with my sister so she could see the stage better.
Мы с сестрой поменялись местами, чтобы ей лучше было видно сцену.
She ended up swapping jobs with her secretary.
В конечном итоге, она поменялась работой со своим секретарём.
I liked her blue notebook and she liked my red one, so we swapped.
Мне понравился её синий блокнот, а ей — мой красный, и мы ими обменялись.
After a few minutes, we’ll swap (a)round so that you can have a good view.
Через несколько минут мы поменяемся местами, и вы сможете всё рассмотреть.
Do you want to swap umbrellas?
Хочешь, поменяемся зонтиками?
He swapped his London home for a cottage in Scotland.
Он променял свой лондонский дом на небольшой домик в Шотландии.
Once, in order to put food on the table, he swapped his watch for a pig!
Однажды, чтобы добыть еды, он обменял свои часы на поросенка.
They made the swap in secret.
Они произвели этот обмен тайком.
She had swapped her long skirts for jeans and T shirts.
Она променяла свои длинные юбки на джинсы и футболки.
You start on the windows and I’ll do the walls, then we can swap over after an hour or so.
Ты начинай окна, а я буду делать стены, а где-то через час мы можем поменяться.
Can we swap places, please?
Мы можем поменяться местами, пожалуйста?
They sat in a corner and swapped gossip.
Они сидели в углу и обменивались сплетнями.
Why don’t we swap the TV with the bookcase?
Почему бы нам не поменять местами телевизор с книжным шкафом?
Примеры, ожидающие перевода
. we made a swap: I’ll do the dishes tonight and she’ll do them for me tomorrow.
The driver announced that we would have to swap buses.
The girls chatted and swapped clothes with each other.
В защиту swap’а [в Linux]: распространенные заблуждения
Прим. перев.: Эта увлекательная статья, в подробностях раскрывающая предназначение swap в Linux и отвечающая на распространённое заблуждение на этот счёт, написана Chris Down — SRE из Facebook, который, в частности, занимается разработкой новых метрик в ядре, помогающих анализировать нагрузку на оперативную память. И начинает он своё повествование с лаконичного TL;DR…
Предисловие
Работая над улучшением и использованием cgroup v2, я успел поговорить со многими инженерами об их отношении к управлению памяти, особенно о поведении приложения под нагрузкой и об эвристическом алгоритме операционной системы, используемым «под капотом» для управления памятью.
Повторяющейся темой этих обсуждений стал swap. Тема swap активно оспаривается и плохо понимается даже теми, кто проработал с Linux долгие годы. Многие воспринимают его как нечто бесполезное или очень вредное — мол, это пережиток прошлого, когда памяти было мало и диски являлись необходимым злом, предоставляющим столь нужное пространство для подкачки. И до сих пор, все последние годы, я достаточно часто наблюдаю споры вокруг этого утверждения: немало дискуссий провёл и я сам с коллегами, друзьями, собратьями по индустрии, помогая им понять, почему swap — это по-прежнему полезная концепция на современных компьютерах, имеющих гораздо больше физической памяти, чем в былые времена.
Широкое недопонимание существует и насчёт предназначения swap’а: многие люди видят в нём лишь «медленную дополнительную память» для использования в критических ситуациях, но не понимают его вклад в адекватное функционирование операционной системы в целом при нормальной нагрузке.
Многие из нас слышали такие распространённые фразы о памяти: «Linux использует слишком много памяти», «swap должен быть вдвое больше размера физической памяти» и т.п. Эти заблуждения легко развеять и их обсуждения стали более точными в последние годы, однако миф о «бесполезном» swap гораздо больше завязан на эвристику и таинство, которые не поддаются объяснению с простой аналогией, — для его обсуждения требуется более глубокое понимание управления памятью.
Введение
Сложно говорить, почему наличие swap’а и перемещение в него страниц памяти — хорошо при нормальной работе, не разделяя понимание некоторых базовых нижележащих механизмов в управлении памятью в Linux, поэтому давайте убедимся, что говорим на одном языке.
Типы памяти
В Linux существует множество различных типов памяти, и у каждого из этих типов есть свои свойства. Понимание их особенностей — ключ к пониманию, почему swap важен.
Например, есть страницы («блоки» памяти, обычно по 4k), ответственные за хранение кода для каждого процесса, запущенного на компьютере. Есть также страницы, ответственные за кэширование данных и метаданных, относящихся к файлам, к которым обращаются эти программы для ускорения своих обращений в будущем. Они являются частью страничного кэша [page cache], и далее я буду на них ссылаться как на файловую [file] память.
Есть и другие типы памяти: разделяемая память, slab-память, память стека ядра, буферы и иные, — но анонимная память и файловая память известны лучше других и просты для понимания, поэтому именно они будут использоваться в примерах, которые, впрочем, равносильно применимы и к другим типам.
Память с высвобождением и без
В размышлениях о конкретном типе памяти одним из главных вопросов становится возможность её высвобождения. «Высвобождение» [reclaim] означает, что система может, без потери данных, удалить страницы этого типа из физической памяти.
Для некоторых типов страниц это сделать весьма просто. Например, в случае чистой [clean], т.е. немодифицированной, памяти страничного кэша мы просто кэшируем для лучшей производительности то, что уже есть на диске, поэтому можем сбросить страницу без необходимости в каких-либо специальных операциях.
Для некоторых типов страниц это возможно, но непросто. Например, в случае грязной [dirty], т.е. модифицированной, памяти страничного кэша мы не можем просто сбросить страницу, потому что на диске ещё нет произведённых модификаций. Поэтому необходимо или отказаться от высвобождения [reclamation], или перенести наши изменения обратно на диск перед тем, как сбрасывать эту память.
Для некоторых типов страниц это невозможно. Например, упомянутые раньше анонимные страницы могут существовать только в памяти и никаком ином резервном хранилище, поэтому их необходимо хранить здесь (т.е. в самой памяти).
О природе swap’а
Если поискать объяснения, зачем нужен swap в Linux, неизбежно находятся многочисленные обсуждения его предназначения просто как расширения физической RAM для критических случаев. Вот, например, случайный пост, который я вытащил из первых результатов в Google по запросу «what is swap»:
«По своей сути swap — это экстренная память; запасное пространство для случаев, когда система на какое-то время нуждается в большем количестве физической памяти, чем доступно в RAM. Она считается «плохой» в том смысле, что медленная и неэффективная, и если системе постоянно требуется использовать swap, очевидно, ей не хватает памяти. [..] Если у вас достаточно RAM для удовлетворения всех потребностей и вы не ожидаете её превышения, вы можете прекрасно работать и без swap-пространства».
Поясню, что я вовсе не обвиняю автора этого комментария за содержимое его поста — это «общеизвестный факт», признаваемый многими системными администраторами Linux и являющийся, пожалуй, одним из наиболее вероятных ответов на вопрос о swap’е. К сожалению, это вдобавок и неправильное представление о предназначении и использовании swap’а, особенно на современных системах.
Как я уже писал выше, высвобождение анонимных страниц «невозможно», поскольку анонимные страницы по своей природе не имеют резервного хранилища, к которому можно обратиться при удалении данных из памяти, — таким образом, их высвобождение приведёт к полной утере данных из соответствующих страниц. Однако… что будет, если мы смогли бы создать такое хранилище для этих страниц?
Вот именно для этого и существует swap. Swap — область хранения для этих, кажущихся «невысвобождаемыми» [unreclaimable], страниц, позволяющая отправлять их на устройство хранения по запросу. Это означает, что их можно начинать считать такими же доступными для высвобождения, как и их более простые в этом смысле друзья (вроде чистых файловых страниц), что позволяет эффективнее использовать свободную физическую память.
Swap — это преимущественно механизм для равного высвобождения, а не для срочной «дополнительной памяти». Не swap замедляет работу вашего приложения — замедление происходит из-за начала совокупной конкуренции за память.
Итак, в каких же ситуациях это «равное высвобождение» будет оправданно выбирать высвобождение анонимных страниц? Вот абстрактные примеры некоторых не самых редких сценариев:
Что происходит с использованием swap и без него
Давайте посмотрим на типовые ситуации и к чему они приводят при наличии и отсутствии swap. О метриках «конкуренции за память» я рассказываю в докладе про cgroup v2.
Без конкуренции или с малой конкуренцией за память
С умеренной или высокой конкуренцией за память
При временных всплесках в потреблении памяти
Окей, я хочу системный swap, но как его настроить для конкретных приложений?
Вы же не думали, что в этой статье не будет упоминаний использования cgroup v2?
И в этом вопросе нельзя просто положиться на OOM killer. Потому что OOM killer вызывается только в самых критичных ситуациях, когда система уже оказалась в значительно нездоровом состоянии и, возможно, находилась в нём некоторое время. Необходимо самостоятельно и оппортунистически разрешить ситуацию ещё до того, как задумываться об OOM killer’е.
Тем не менее, выявить давление на память достаточно трудно с помощью традиционных счётчиков памяти в Linux. Нам доступно нечто, что каким-то образом относится к проблеме, однако скорее по касательной: потребление памяти, количество операций сканирования страниц и т.п. — и по одним этим метрикам очень трудно отличить эффективную конфигурацию памяти от той, что приводит к конкуренции за память. У нас есть группа в Facebook, возглавляемая Johannes’ом и работающая над новыми метриками, упрощающими демонстрацию давления на память, — это должно помочь нам в будущем. Больше информации об этом можно получить из моего доклада про cgroup v2, где я начинаю подробнее рассказывать об одной из метрик.
Тюнинг
Сколько же swap’а мне тогда нужно?
В общем случае минимальное количество swap-пространства, требуемого для оптимального управления памятью, зависит от количества анонимных страниц, которые привязаны к пространству памяти и к которым редко обращается приложение, а также от стоимости высвобождения этих анонимных страниц. Последнее — это в большей степени вопрос о том, какие страницы больше не должны удаляться, чтобы уступить место тем анонимным страницам, к которым редко обращаются.
Если у вас достаточно дискового пространства и свежее (4.0+) ядро, большее количество swap’а почти всегда лучше, чем меньшее. В более старых ядрах kswapd — один из процессов ядра, что отвечает за управление swap’ом, — исторически слишком усердствовал в перемещении памяти в swap, делая это тем активнее, чем больше swap’а было доступно. В последнее время поведение swapping’а при наличии большого swap-пространства значительно улучшили. Так что, если вы работаете с ядром 4.0+, большой swap не приведёт к чрезмерному swapping’у. В общем, на современных ядрах нормально иметь swap размером в несколько гигабайт, если такое пространство у вас есть.
Если же дисковое пространство ограничено, ответ в действительности зависит от компромисса, на который вы готовы пойти, и особенностей окружения. В идеале у вас должно быть достаточно swap’а, чтобы система оптимально функционировала при нормальной и пиковой (по памяти) нагрузке. Рекомендую настроить несколько тестовых систем с 2-3 Гб swap’а или более и понаблюдать, что происходит на протяжении недели или около того в разных условиях нагрузки (на память). Если на протяжении этой недели не случалось ситуаций резкой нехватки памяти, что означает недостаточную пользу такого теста, всё закончится занятостью swap’а небольшим количеством мегабайт. В таком случае, пожалуй, разумно будет иметь swap хотя бы такого размера с добавлением небольшого буфера для меняющихся нагрузок. Также atop в режиме логирования в столбце SWAPSZ может показать, страницы каких приложений попадают в swap. Если вы ещё не используете эту утилиту на своих серверах для логирования истории состояний сервера — возможно, в эксперимент стоит добавить её настройку на тестовых машинах (в режиме логирования). Заодно вы узнаете, когда приложение начало перемещать страницы в swap, что можно привязать к событиям из логов или другим важным показателям.
Ещё стоит задуматься о типе носителя для swap’а. Чтение из swap имеет тенденцию быть очень случайным, поскольку нельзя уверенно предсказать, у каких страниц будет отказ и когда. Для SSD это не имеет особого значения, а вот для вращающихся дисков случайный ввод/вывод может оказаться очень дорогим, поскольку требует физических движений. С другой стороны, отказы у файловых страниц обычно менее случайны, поскольку файлы, относящиеся к работе одного запущенного приложения, обычно менее фрагментированы. Это может означать, что для вращающегося диска вы можете захотеть сместиться в сторону высвобождения файловых страниц вместо swapping’а анонимных страниц, но, опять же, необходимо протестировать и оценить, как будет соблюдаться баланс для вашей рабочей нагрузки.
Для пользователей ноутбуков/десктопов, желающих использовать swap для перехода в спящий режим [hibernate], этот факт также необходимо учитывать, поскольку swap-файл тогда должен как минимум соответствовать размеру физической оперативной памяти.
Какой должна быть настройка swappiness?
Это означает, что vm.swappiness — это по существу просто соотношение дорогой анонимной памяти, которую можно высвобождать и приводить к отказам, в сравнении с файловой памятью для вашего железа и рабочей нагрузки. Чем ниже значение, тем активнее вы сообщаете ядру, что редкие обращения к анонимным страницам дороги для перемещения в swap и обратно на вашем оборудовании. Чем выше это значение, тем вы больше говорите ядру, что стоимость swapping’а анонимных и файловых страниц одинакова на вашем оборудовании. Подсистема управления памятью будет по-прежнему пытаться решить, помещать в swap файловые или анонимные страницы, руководствуясь тем, насколько «горяча» память, однако swappiness склоняет подсчёт стоимости в пользу большего swapping’а или большего пропуска кэшей файловой системы, когда доступны оба способа. На SSD-дисках эти подходы практически равны по стоимости, поэтому установка vm.swappiness = 100 (т.е. полное равенство) может работать хорошо. На вращающихся дисках swapping может быть значительно дороже, т.к. в целом он требует случайного чтения, поэтому вы скорее всего захотите сместиться в сторону меньшего значения.
Реальность же в том, что большинство людей не имеют представления о том, чего требует их железо, поэтому настроить это значение, основываясь лишь на инстинкте, затруднительно — это вопрос, требующий личного тестирования с разными значениями. Можно также заняться анализом состава памяти вашей системы, основных приложений и их поведения в условиях небольшого высвобождения памяти.
Лайфхак-гайд как быстро слить токены с IDO на Uniswap/Pancake по самой высокой цене
Содержание статьи:
Этот материал подготовлен нашим другом с канала IDO research в рамках рубрики «community based контент». У него небольшой канал, но очень хороший авторский контент на тему анализа перспективных проектов и интересных новостей.
Всем привет. Меня зовут Leo, я автор канала @IDOresearch в Telegram.
И сегодня я бы хотел рассмотреть самый популярный вопрос — как быстро слить токены с IDO на Uniswap/Pancake по самой высокой цене сравнивать?
Вы выиграли в IDO, токен залислился на Uniswap/Pancake, вы смотрите как его разгоняют по цене, уже считаете свои будущие иксы, выбираете цвет ламбы и ждете пока вам начислят ваши заветные токены. Но, токены ведь начисляют разом всем, поэтому в момент их зачисления на все кошельки — цену начинают укатывать буквально у вас на глазах каждые 2 секунды. И вот уже ваши х30 превращаются в х20, в х15, а когда вы заапрувили контракт и сделали с третьего раза свап — уже х3. И ламба превращается в шкоду рапид, да еще и желтого цвета.
Этот гайд позволит вам сэкономить те самые драгоценные секунды, чтобы успеть слить именно на первой свечке.
1. Предварительный апрув токена для свапа.
Когда вы свапаете на юнике/панкейке новый для вас токен — первым делом платформа запросит от вас подтверждения того, что вы разрешаете ей работать с этой монеткой. Это называется апрув. Пока вы будете ждать подтверждения транзакции на апрув — цена может потерять до 50-60% от той, по которой вы бы могли слить. Поэтому апрувить контракт надо заранее. Делается это через etherscan.io или bscscan.com в зависимости от того, на где вы собиратесь этот токен лить. По ссылке супер полезный видеогайд как это сделать заранее для Uniswap (спасибо Юре из BULK за него). Если же вы апрувите токен для панкейка, вы выполняете полностью аналогичную процедуру через bscscan.com, только в строчку «spender (address)» вписываете адрес Pancake Router v2 (ссылка).
2. Claim токенов.
Если процедура получения токенов подразумевает клейм, то ваша задача на этом этапе дать побольше газа на этой транзакции. Ведь тем, кому быстрее токены придут на кошелек — первыми успеют слить их в стакан. Поэтому тут не надо экономить. Делайте х2 к максимальному газу на текущий момент на езерскане и вы будете в числе первых. То есть за 5 минут до клейма зашли на газтрекер, посмотрели, что High — это 200 gwei. Значит смело даете 400 gwei при клейме и получаете токены быстрее 90% остальных ребят.
3. Slippage при свапе.
Слиппейдж — это настройка, которая позвляет вам задать процент допустимого расхождения цены в момент обработки вашей транзакции. Если у вас там стоит 2%, к примеру, а пока ваша транза обрабатывается цена изменилась на 5% — ваша транзакция не пройдет. Вы заплатите за газ и будете ее делать снова, но цену будут укатывать и укатывать. Поэтому оптимальный слиппейдж на особо валотильных монетах — 5-10%. Да, вы получите меньше, но продадите дороже. Практика показывает, что это всегда выгоднее, так как недополучить 5-10% на слиппе намного лучше, чем потерять 30% на проливе цены за время фейлов ваших транзакций.
4. Газ в момент свапа.
Самый ключевой фактор. Если вы видите, что цена держится на уровне х20++, значит первые снимут с нее все сливки и будут очень грубо ее укатывать. И вам тут надо не скупиться на газ. Я обычно даю х3-х4 от High на газтрекере, чтобы моя транза была точно в списке первых. Если фейлится (а фейлится она от того, что кто-то дал х4++), снова повторяю этот процесс.
Как итог:
Поздравляю вас, вы собрали сливки с этого стакана.
??Искренне советую вам поделиться этой статье со всеми вашими друзьями, кто участвует в любых токенсейлах. Эта информация позволит им зарабатывать, а не пропускать мимо себя те самые заветные иксы.