Jump to content

Трэшинг (информатика)

(Перенаправлено с перебора кэша )

В информатике , перегрузка происходит в системе с виртуальной памятью хранения компьютера когда реальные ресурсы перегружены , что приводит к постоянному состоянию подкачки и ошибок страниц , замедляя большую часть приложения . обработки на уровне [1] Это приводит производительности компьютера к ухудшению или сбою . Ситуация может продолжаться бесконечно долго, пока пользователь не закроет некоторые запущенные приложения или активные процессы не освободят дополнительные ресурсы виртуальной памяти.

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

Когда рабочий набор ненамного превышает общее количество реальных страниц памяти системы , системы виртуальной памяти работают наиболее эффективно, и на устранение страничных ошибок тратится незначительный объем вычислений. По мере роста общего числа рабочих наборов устранение ошибок страниц остается управляемым до тех пор, пока рост не достигнет критической точки, в которой количество ошибок резко возрастает, а время, затрачиваемое на их устранение, превосходит время, затрачиваемое на вычисления, для которых была написана программа. Это состояние называется подергиванием. Сбой может произойти в программе, которая случайным образом обращается к огромным структурам данных, поскольку ее большой рабочий набор вызывает постоянные ошибки страниц, которые резко замедляют работу системы. Устранение ошибок страниц может потребовать освобождения страниц, которые вскоре придется перечитывать с диска.

Этот термин также используется для обозначения различных подобных явлений , в частности, перемещения между другими уровнями иерархии памяти , когда процесс продвигается медленно, поскольку на приобретение ресурсов тратится значительное время.

«Избиение» также используется в контекстах, отличных от систем виртуальной памяти, например, для описания проблем с кэшем в вычислениях или синдрома глупого окна в сети.

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

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

каскад серьезных промахов кэша , известных как ошибки страниц Если процессы используют всю основную память и нуждаются в дополнительных страницах памяти, произойдет , что часто приводит к заметной задержке операционной системы реагирования . Этот процесс вместе с бесполезной повторяющейся заменой страниц известен как «перемешивание». Это часто приводит к высокой и неконтролируемой загрузке ЦП, что может привести к остановке системы. В современных компьютерах тряска может возникнуть в системе подкачки (если недостаточно физической памяти или время доступа к диску слишком велико), или в подсистеме связи ввода-вывода (особенно при конфликтах по поводу доступа к внутренней шине ) и т. д.

В зависимости от используемой конфигурации и алгоритмов пропускная способность и задержка системы могут ухудшиться на несколько порядков . Трэшинг — это когда ЦП меньше выполняет «продуктивную» работу и больше «подкачивает». Общее время доступа к памяти может увеличиться, поскольку скорость памяти более высокого уровня равна скорости следующего более низкого уровня в иерархии памяти. [2] ЦП настолько занят подкачкой страниц, что не может реагировать на программы пользователя и прерывается столько, сколько требуется. Перегрузка происходит, когда в памяти слишком много страниц, и каждая страница ссылается на другую страницу. Реальная память уменьшает свою емкость для хранения всех страниц, поэтому используется «виртуальная память». Когда каждая выполняющаяся страница требует эту страницу, которой в данный момент нет в реальной памяти (ОЗУ), она помещает некоторые страницы в виртуальную память и настраивает необходимую страницу в ОЗУ. Если процессор слишком занят выполнением этой задачи, происходит сбой.

В системах виртуальной памяти перегрузка может быть вызвана программами или рабочими нагрузками, которые обеспечивают недостаточную локальность ссылки : если рабочий набор программы или рабочая нагрузка не могут эффективно удерживаться в физической памяти, может произойти постоянная подкачка данных, т. е. перегрузка. Этот термин впервые использовался во времена ленточных операционных систем для описания звука, издаваемого лентами при быстрой записи и чтении данных.Худший случай может произойти на процессорах VAX . Одиночный MOVL пересечение границы страницы может иметь операнд-источник, использующий режим отложенной адресации смещения, когда длинное слово, содержащее адрес операнда, пересекает границу страницы, и операнд назначения, использующий режим отложенной адресации смещения, когда длинное слово, содержащее адрес операнда, пересекает границу страницы. , а источник и место назначения могут пересекать границы страниц. Эта единственная инструкция занимает десять страниц; если не все находятся в ОЗУ, каждый вызовет ошибку страницы. Таким образом, общее количество страниц, задействованных в этой конкретной инструкции, равно десяти, и все десять страниц должны одновременно присутствовать в памяти. Если какую-либо из десяти страниц невозможно заменить (например, чтобы освободить место для любой из других страниц), инструкция завершится ошибкой, и каждая попытка перезапустить ее будет неудачной до тех пор, пока не будут заменены все восемь страниц.

Сбой в работе системы часто является результатом внезапного резкого увеличения спроса на страницы со стороны небольшого количества запущенных программ. Своп-токен [3] представляет собой легкий и динамичный механизм защиты от выбрасывания. Основная идея состоит в том, чтобы установить в системе токен, который случайным образом передается процессу, у которого возникают страничные ошибки при возникновении сбоев. Процессу, имеющему токен, предоставляется привилегия выделять больше страниц физической памяти для создания своего рабочего набора, который, как ожидается, быстро завершит свое выполнение и освободит страницы памяти другим процессам. Временная метка используется для передачи токенов один за другим. Первая версия swap-токена реализована в Linux . Вторая версия называется preempt swap-token . В этой обновленной реализации токена подкачки для каждого процесса устанавливается счетчик приоритетов для отслеживания количества страниц подкачки. Токен всегда отдается процессу с высоким приоритетом, который имеет большое количество страниц подкачки. Длина отметки времени не является константой, а определяется приоритетом: чем больше страниц процесса выгрузки, тем длиннее будет отметка времени для него.

Другое использование

[ редактировать ]

Перетряска наиболее известна в контексте памяти и хранения, но аналогичные явления происходят и для других ресурсов , в том числе:

Перебор кеша
Когда доступ к основной памяти осуществляется по схеме, которая приводит к тому, что несколько ячеек основной памяти конкурируют за одни и те же строки кэша, что приводит к чрезмерным промахам в кэше . Это наиболее проблематично для кэшей с низкой ассоциативностью .
TLB избивает
Где резервный буфер трансляции (TLB), действующий как кеш для блока управления памятью (MMU), который преобразует виртуальные адреса в физические адреса, слишком мал для рабочего набора страниц. Перегрузка TLB может произойти, даже если перегрузка кэша инструкций или кэша данных не происходит, поскольку они кэшируются в разных размерах. Инструкции и данные кэшируются небольшими блоками ( строками кэша ), а не целыми страницами, но поиск адреса выполняется на уровне страницы. Таким образом, даже если рабочие наборы кода и данных помещаются в кэш, если рабочие наборы фрагментированы по многим страницам, рабочий набор виртуальных адресов может не поместиться в TLB, что приведет к перегрузке TLB.
Избиение кучи
Частая сборка мусора из-за невозможности выделить память для объекта из-за недостаточности свободной памяти или недостаточности непрерывной свободной памяти из-за фрагментации памяти называется перебором кучи. [4]
Процесс взбивания
Аналогичное явление происходит и с процессами: когда рабочий набор процессов не может быть спланирован (поэтому не все взаимодействующие процессы запланированы для запуска в одно и то же время), они испытывают «затормаживание процессов» из-за неоднократного планирования и незапланирования, прогрессируя очень медленно. [5]

См. также

[ редактировать ]
  1. ^ Деннинг, Питер Дж. (1968). «Избиение: причины и профилактика» (PDF) . Материалы AFIPS, Осенняя совместная компьютерная конференция . 33 : 915–922 . Проверено 15 февраля 2012 г.
  2. ^ Л., Хеннесси, Джон (2012). Компьютерная архитектура: количественный подход . Паттерсон, Дэвид А., Асанович, Крсте . (5-е изд.). Уолтем, Массачусетс: Морган Кауфманн. ISBN  9780123838728 . OCLC   755102367 . {{cite book}}: CS1 maint: несколько имен: список авторов ( ссылка )
  3. ^ Сун Цзян и Сяодун Чжан (2005). «LRU по токенам: эффективная политика замены страниц и ее реализация в системах Linux» . Оценка производительности. стр. 5–29. дои : 10.1016/j.peva.2004.10.002 .
  4. ^ Методы оптимизации и настройки производительности процессоров IBM, включая IBM POWER8 , «куча + перебор» стр. 170
  5. ^ Оустерхаут, Дж. К. (1982). «Методы планирования для параллельных систем» (PDF) . Материалы Третьей международной конференции по распределенным вычислительным системам . стр. 22–30.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 30d53ffd69ad901a536fbd9b05a144ed__1720646820
URL1:https://arc.ask3.ru/arc/aa/30/ed/30d53ffd69ad901a536fbd9b05a144ed.html
Заголовок, (Title) документа по адресу, URL1:
Thrashing (computer science) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)