Неверное выделение памяти при создании видеокадра с псевдонимом диска
Обновлено: 21.11.2024
Вы можете указать параметры разрешения монитора, настроить несколько мониторов и выбрать возможности ускоренной графики для виртуальной машины. Вы можете использовать функцию нескольких мониторов, когда виртуальная машина находится в полноэкранном режиме.
Чтобы гости Windows могли использовать графику с ускорением DirectX 9, гостевая операционная система должна быть Windows XP или более поздней версии. Чтобы использовать ускоренную графику DirectX 10, гостевая операционная система должна быть Windows Vista или более поздней версии. Чтобы использовать ускоренную графику DirectX 10.1, гостевая операционная система должна быть Windows 7 или более поздней версии.
Предпосылки
- Убедитесь, что в гостевой операционной системе установлена последняя версия VMware Tools.
- Убедитесь, что гостевой операционной системой на виртуальной машине является Windows XP или более поздняя версия или Linux.
- Если вы планируете использовать ускоренную графику DirectX 9, DirectX 10 или DirectX 10.1, подготовьте хост-систему. См. раздел Подготовка хост-системы к использованию 3D-графики с ускорением.
- Если в качестве гостевой операционной системы используется Windows 7 или более поздняя версия и вы хотите, чтобы Workstation Player автоматически настраивал размер пользовательского интерфейса виртуальной машины, обновите VMware Tools в гостевой системе до последней версии.
- Если вы используете Windows 8.1 (обновление 2) или Windows 10, Workstation Player определяет DPI на каждом мониторе и масштабирует виртуальную машину в соответствии с DPI на хосте.
Процедура
При выборе этого параметра драйвер SVGA использует максимальную ширину ограничивающей рамки 7680 и максимальную высоту ограничивающей рамки 4320. Виртуальная машина использует количество мониторов в хост-системе. Гостевые мониторы не могут превышать максимальную ограничивающую рамку, используемую драйвером SVGA, 7680x4320. Этот параметр следует выбирать в большинстве случаев.
Установите количество мониторов, которые будет видеть виртуальная машина, независимо от количества мониторов в хост-системе. Этот параметр полезен, если вы используете хост-систему с несколькими мониторами и вам необходимо провести тестирование на виртуальной машине с одним монитором. Это также полезно, если вы разрабатываете приложение с несколькими мониторами на виртуальной машине, а в хост-системе есть только один монитор. После включения виртуальной машины гостевая операционная система увидит указанное вами количество мониторов. Выберите разрешение из списка или введите параметр, который имеет формат ширина x высота , где ширина и высота — это количество пикселей.
Примечание. Если вы вручную редактировали файл .vmx, чтобы изменить размер памяти для виртуальной машины, отображается значение, введенное вами в файле .vmx, с пометкой "Пользовательский" .
В этом руководстве описывается, как исправить распространенные ошибки и проблемы с кластерами Elasticsearch.
Ошибка: использование диска превысило водяной знак стадии наводнения, индекс заблокирован только для чтения-разрешения-удаления
Эта ошибка указывает на то, что на узле данных критически мало места на диске и достигнут водяной знак использования диска на стадии переполнения. Чтобы предотвратить переполнение диска, когда узел достигает этого водяного знака, Elasticsearch блокирует запись в любой индекс с сегментом на узле. Если блокировка влияет на связанные системные индексы, Kibana и другие функции Elastic Stack могут стать недоступными.
Elasticsearch автоматически удалит блокировку записи, когда использование диска затронутым узлом опустится ниже верхнего водяного знака. Для этого Elasticsearch автоматически перемещает некоторые сегменты затронутого узла на другие узлы того же уровня данных.
Чтобы убедиться, что сегменты удаляются с затронутого узла, используйте API-интерфейс cat shards.
Если сегменты остаются на узле, используйте API объяснения распределения кластера, чтобы получить объяснение статуса их распределения.
Чтобы немедленно восстановить операции записи, вы можете временно увеличить водяные знаки диска и снять блокировку записи.
В качестве долгосрочного решения мы рекомендуем добавить узлы на затронутые уровни данных или обновить существующие узлы, чтобы увеличить дисковое пространство. Чтобы освободить дополнительное место на диске, вы можете удалить ненужные индексы с помощью API удаления индексов.
Когда будет найдено долгосрочное решение, сбросьте или перенастройте водяные знаки на диске.
Ошибки автоматического выключателя
Elasticsearch использует автоматические выключатели, чтобы узлы не исчерпали память кучи JVM. Если Elasticsearch оценивает, что операция превысит автоматический выключатель, он останавливает операцию и возвращает ошибку.
По умолчанию родительский прерыватель цепи срабатывает при использовании памяти JVM на 95 %. Чтобы предотвратить ошибки, мы рекомендуем принять меры для уменьшения нагрузки на память, если использование постоянно превышает 85%.
Диагностика ошибок автоматического выключателя
Сообщения об ошибках
Elasticsearch также записывает ошибки прерывателя цепи в elasticsearch.log . Это полезно, когда автоматизированные процессы, такие как распределение, приводят к срабатыванию прерывателя цепи.
Проверьте использование памяти JVM
Если вы включили мониторинг стека, вы можете просматривать использование памяти JVM в Kibana. В главном меню нажмите Мониторинг стека.На странице Обзор мониторинга стека щелкните Узлы . В столбце JVM Heap указано текущее использование памяти для каждого узла.
Вы также можете использовать API узлов cat для получения текущего значения heap.percent для каждого узла.
Чтобы получить сведения об использовании памяти JVM для каждого автоматического выключателя, используйте API статистики узла.
Предотвращение ошибок автоматического выключателя
Уменьшить нагрузку на память JVM
Высокая нагрузка на память JVM часто вызывает ошибки прерывателя цепи. См. раздел Высокая нехватка памяти JVM.
Избегайте использования fielddata в текстовых полях
Для текстовых полей с большим количеством элементов полевые данные могут использовать большой объем памяти JVM. Чтобы избежать этого, Elasticsearch по умолчанию отключает данные полей в текстовых полях. Если вы включили fielddata и активировали автоматический выключатель fielddata, рассмотрите возможность его отключения и использования вместо него поля ключевого слова. См. параметр сопоставления данных поля.
Очистить кеш fielddata
Если вы активировали прерыватель цепи fielddata и не можете отключить fielddata, используйте API очистки кэша, чтобы очистить кэш fielddata. Это может нарушить любые поиски в полете, в которых используются полевые данные.
Высокая загрузка ЦП
Elasticsearch использует пулы потоков для управления ресурсами ЦП для параллельных операций. Высокая загрузка ЦП обычно означает, что один или несколько пулов потоков работают на низком уровне.
Если пул потоков исчерпан, Elasticsearch будет отклонять запросы, связанные с пулом потоков. Например, если пул поисковых потоков исчерпан, Elasticsearch будет отклонять поисковые запросы до тех пор, пока не будет доступно больше потоков.
Диагностика высокой загрузки ЦП
Проверьте загрузку ЦП
В меню развертывания нажмите Производительность . Диаграмма загрузки ЦП на странице показывает загрузку ЦП вашего развертывания в процентах.
Высокая загрузка ЦП также может привести к истощению кредитов ЦП. Кредиты ЦП позволяют Elasticsearch Service предоставлять небольшие кластеры с повышением производительности, когда это необходимо. На диаграмме кредитов ЦП показаны оставшиеся кредиты ЦП, измеренные в секундах процессорного времени.
Вы также можете использовать API узлов cat, чтобы получить текущую загрузку ЦП для каждого узла.
Столбец cpu ответа содержит текущую загрузку ЦП в процентах. Столбец узла содержит имя узла.
Используйте API узлов cat, чтобы получить текущую загрузку ЦП для каждого узла.
Столбец cpu ответа содержит текущую загрузку ЦП в процентах. Столбец узла содержит имя узла.
Проверить горячие темы
Если на узле высокая загрузка ЦП, используйте API горячих потоков узлов для проверки ресурсоемких потоков, выполняющихся на узле.
Этот API возвращает разбивку любых горячих тем в виде обычного текста.
Уменьшить использование ЦП
В следующих советах описаны наиболее распространенные причины высокой загрузки ЦП и способы их устранения.
Масштабируйте свой кластер
Большие нагрузки при индексировании и поиске могут привести к истощению небольших пулов потоков. Чтобы лучше справляться с большими рабочими нагрузками, добавьте в свой кластер дополнительные узлы или обновите существующие узлы, чтобы увеличить емкость.
Распространяйте массовые запросы
Хотя большие объемы индексации или многопоисковые запросы более эффективны, чем отдельные запросы, они по-прежнему требуют ресурсов ЦП. По возможности отправляйте запросы меньшего размера и делайте между ними больше времени.
Отменить длительные поиски
Продолжительные поиски могут блокировать потоки в пуле потоков поиска. Чтобы проверить эти запросы, используйте API управления задачами.
Описание ответа содержит поисковый запрос и его запросы. running_time_in_nanos показывает, как долго выполнялся поиск.
Чтобы отменить поиск и освободить ресурсы, используйте конечную точку API _cancel.
Дополнительные советы о том, как отслеживать ресурсоемкие поисковые запросы и избегать их, см. в статье Избегайте ресурсоемких поисковых запросов.
Высокое давление памяти JVM
Высокое использование памяти JVM может снизить производительность кластера и вызвать ошибки автоматического отключения. Чтобы предотвратить это, мы рекомендуем принять меры для уменьшения нагрузки на память, если использование памяти JVM узла постоянно превышает 85%.
Диагностика высокой нагрузки на память JVM
Проверьте нехватку памяти JVM
В меню развертывания выберите Elasticsearch . В разделе Экземпляры каждый экземпляр отображает индикатор нехватки памяти JVM. Когда нехватка памяти JVM достигает 75 %, индикатор становится красным.
Вы также можете использовать API статистики узлов для расчета текущей нехватки памяти JVM для каждого узла.
Используйте ответ для расчета нехватки памяти следующим образом:
Нехватка памяти JVM = used_in_bytes / max_in_bytes
Чтобы рассчитать текущую нехватку памяти JVM для каждого узла, используйте API статистики узлов.
Используйте ответ для расчета нехватки памяти следующим образом:
Нехватка памяти JVM = used_in_bytes / max_in_bytes
Проверьте журналы сборки мусора
По мере увеличения использования памяти сбор мусора становится более частым и занимает больше времени. Вы можете отслеживать частоту и продолжительность событий сборки мусора в elasticsearch.log.Например, в следующем событии говорится, что Elasticsearch потратил более 50 % (21 секунду) из последних 40 секунд на сборку мусора.
Уменьшить нагрузку на память JVM
Уменьшите количество сегментов
Каждый сегмент использует память. В большинстве случаев небольшой набор больших сегментов использует меньше ресурсов, чем множество мелких сегментов. Советы по уменьшению количества сегментов см. в разделе Размер сегментов.
Избегайте дорогостоящих поисков
Затратный поиск может использовать большой объем памяти. Чтобы лучше отслеживать ресурсоемкие поиски в кластере, включите медленные журналы.
Дорогие поиски могут иметь аргумент большого размера, использовать агрегации с большим количеством сегментов или включать дорогостоящие запросы. Чтобы предотвратить дорогостоящие поиски, рассмотрите следующие изменения настроек:
- Уменьшите предельный размер с помощью параметра индекса index.max_result_window.
- Уменьшите максимальное количество допустимых сегментов агрегации с помощью параметра кластера search.max_buckets.
- Отключите дорогостоящие запросы с помощью параметра кластера search.allow_expensive_queries.
Предотвратите взрывы сопоставления
Определение слишком большого количества полей или слишком глубокое вложение полей может привести к взрывному отображению, требующему большого объема памяти. Чтобы предотвратить взрывное сопоставление, используйте настройки ограничения сопоставления, чтобы ограничить количество сопоставлений полей.
Распространяйте массовые запросы
Хотя массовое индексирование или запросы с несколькими поисковыми запросами более эффективны, чем отдельные запросы, они все же могут создать большую нагрузку на память JVM. По возможности отправляйте запросы меньшего размера и делайте между ними больше времени.
Обновление памяти узла
Большие нагрузки при индексировании и поиске могут привести к чрезмерному потреблению памяти JVM. Чтобы лучше справляться с тяжелыми рабочими нагрузками, обновите свои узлы, чтобы увеличить объем их памяти.
Редактировать статус красного или желтого кластера
Красный или желтый статус кластера означает, что один или несколько сегментов отсутствуют или не распределены. Эти неназначенные сегменты повышают риск потери данных и могут снизить производительность кластера.
Диагностика состояния вашего кластера
Проверьте статус своего кластера
Исправный кластер имеет зеленый статус и ноль unassigned_shards . Желтый статус означает, что не назначены только реплики. Красный статус означает, что один или несколько основных сегментов не назначены.
Просмотр неназначенных фрагментов
Чтобы просмотреть неназначенные сегменты, используйте API-интерфейс cat shards.
Неназначенные сегменты имеют состояние UNASSIGNED . Значение prirep равно p для основных сегментов и r для реплик.
Чтобы понять, почему неназначенный сегмент не назначается и какие действия необходимо предпринять, чтобы позволить Elasticsearch назначить его, используйте API объяснения выделения кластера.
Исправить статус красного или желтого кластера
Осколок может стать неназначенным по нескольким причинам. В следующих советах описаны наиболее распространенные причины и способы их устранения.
Повторно включить выделение фрагментов
Обычно вы отключаете выделение во время перезапуска или другого обслуживания кластера. Если вы забыли снова включить выделение, Elasticsearch не сможет назначать осколки. Чтобы повторно включить выделение, сбросьте параметр кластера cluster.routing.allocation.enable.
Восстановить потерянные узлы
Разделения часто становятся неназначенными, когда узел данных покидает кластер. Это может произойти по нескольким причинам, начиная от проблем с подключением и заканчивая аппаратным сбоем. После устранения проблемы и восстановления узла он снова присоединится к кластеру. После этого Elasticsearch автоматически выделит все неназначенные фрагменты.
Чтобы не тратить ресурсы на временные проблемы, Elasticsearch по умолчанию откладывает выделение на одну минуту. Если вы восстановили узел и не хотите ждать периода задержки, вы можете вызвать API перенаправления кластера без аргументов, чтобы начать процесс выделения. Процесс выполняется асинхронно в фоновом режиме.
Исправить настройки распределения
Неправильно настроенные параметры распределения могут привести к тому, что основной сегмент не будет назначен. Эти настройки включают:
- Настройки индекса выделения сегментов
- Настройки кластера фильтрации размещения
- Настройки кластера осведомленности о распределении
Чтобы просмотреть настройки распределения, используйте API получения параметров индекса и параметров кластера.
Вы можете изменить настройки с помощью API настроек индекса обновления и настроек обновления кластера.
Выделить или уменьшить количество реплик
Для защиты от аппаратного сбоя Elasticsearch не будет назначать реплику тому же узлу, что и основной сегмент. Если нет других доступных узлов данных для размещения реплики, она остается неназначенной. Чтобы исправить это, вы можете:
- Добавьте узел данных на тот же уровень для размещения реплики.
- Измените настройку индекса index.number_of_replicas, чтобы уменьшить количество реплик для каждого основного сегмента. Мы рекомендуем хранить по крайней мере одну реплику на первичном сервере.
Освободить или увеличить место на диске
Elasticsearch использует нижний водяной знак на диске, чтобы гарантировать, что на узлах данных достаточно дискового пространства для входящих сегментов. По умолчанию Elasticsearch не выделяет сегменты узлам, занимающим более 85 % дискового пространства.
Чтобы проверить текущее дисковое пространство ваших узлов, используйте API распределения котов.
Если вашим узлам не хватает места на диске, у вас есть несколько вариантов:
- Обновите свои узлы, чтобы увеличить дисковое пространство.
- Удалите ненужные индексы, чтобы освободить место. Если вы используете ILM, вы можете обновить свою политику жизненного цикла, чтобы использовать моментальные снимки с возможностью поиска или добавить фазу удаления. Если вам больше не нужно искать данные, вы можете использовать моментальный снимок для их хранения вне кластера.
Если вы больше не записываете в индекс, используйте API принудительного слияния или действие принудительного слияния ILM, чтобы объединить его сегменты в более крупные.
Если индекс доступен только для чтения, используйте API сжатия индекса или действие сокращения ILM, чтобы уменьшить количество основных фрагментов.
Если ваш узел имеет большой объем диска, вы можете увеличить нижний водяной знак диска или задать явное значение в байтах.
Уменьшить нагрузку на память JVM
Для выделения сегментов требуется память кучи JVM. Высокая нехватка памяти JVM может привести к срабатыванию автоматических выключателей, которые остановят выделение и оставят осколки неназначенными. См. раздел Высокая нехватка памяти JVM.
Восстановление данных для потерянного основного сегмента
Если узел, содержащий основной сегмент, потерян, Elasticsearch обычно может заменить его, используя реплику на другом узле. Если вы не можете восстановить узел, а реплики не существуют или не подлежат восстановлению, вам потребуется повторно добавить отсутствующие данные из моментального снимка или исходного источника данных.
Используйте этот параметр, только если восстановление узла больше невозможно. Этот процесс выделяет пустой первичный осколок. Если узел позже присоединится к кластеру, Elasticsearch перезапишет его основной сегмент данными из этого нового пустого сегмента, что приведет к потере данных.
Используйте API перенаправления кластера, чтобы вручную выделить неназначенный основной сегмент другому узлу данных на том же уровне. Установите для accept_data_loss значение true .
Если вы создали резервную копию отсутствующих данных индекса в моментальном снимке, используйте API восстановления моментального снимка для восстановления отдельного индекса. Кроме того, вы можете проиндексировать отсутствующие данные из исходного источника данных.
Отклоненные запросы
Когда Elasticsearch отклоняет запрос, он останавливает операцию и возвращает ошибку с кодом ответа 429. Отклоненные запросы обычно вызваны:
- Исчерпан пул потоков. Исчерпанный пул потоков поиска или записи возвращает сообщение об ошибке TOO_MANY_REQUESTS.
- Ошибка автоматического выключателя.
- Высокое давление индексации, превышающее indexing_pressure.memory.limit .
Проверить отклоненные задачи
Чтобы проверить количество отклоненных задач для каждого пула потоков, используйте API пула потоков cat. Высокое соотношение отклоненных и завершенных задач, особенно в пулах потоков поиска и записи, означает, что Elasticsearch регулярно отклоняет запросы.
Предотвращение отклоненных запросов
Устранение высокой загрузки ЦП и памяти
Если Elasticsearch регулярно отклоняет запросы и другие задачи, ваш кластер, вероятно, имеет высокую загрузку ЦП или нехватку памяти JVM. Советы см. в разделах Высокая загрузка ЦП и Высокая нагрузка на память JVM.
Предотвращение ошибок автоматического выключателя
Если вы регулярно вызываете ошибки прерывателя цепи, ознакомьтесь с советами по их диагностике и предотвращению в разделе Ошибки прерывателя цепи.
Редактирование невыполненной очереди задач
Очередь невыполненных задач может помешать выполнению задач и привести кластер в неработоспособное состояние. Ограниченность ресурсов, большое количество задач, запускаемых одновременно, и длительные задачи — все это может привести к увеличению очереди задач.
Диагностика незавершенного редактирования очереди задач
Проверьте состояние пула потоков
Вы можете использовать API пула потоков cat, чтобы увидеть количество активных потоков в каждом пуле потоков и сколько задач поставлено в очередь, сколько отклонено и сколько выполнено.
Проверить горячие потоки на каждом узле
Если создается резервная копия определенной очереди пула потоков, вы можете периодически опрашивать API горячих потоков Nodes, чтобы определить, достаточно ли ресурсов потока для его выполнения, и оценить, насколько быстро он выполняется.
Ищите длительные задачи
Продолжительные задачи также могут стать причиной задержки. Вы можете использовать API управления задачами для получения информации о запущенных задачах. Проверьте running_time_in_nanos, чтобы определить задачи, выполнение которых занимает слишком много времени.
Устранение незавершенного редактирования очереди задач
Увеличить доступные ресурсы
Если задачи выполняются медленно, а очередь резервируется, возможно, вам потребуется принять меры для снижения нагрузки на ЦП.
В некоторых случаях может помочь увеличение размера пула потоков. Например, пул потоков force_merge по умолчанию представляет собой один поток. Увеличение размера до 2 может помочь сократить количество невыполненных запросов на принудительное слияние.
Отменить зависшие задачи
Если вы обнаружите, что горячая ветка активной задачи не выполняется и есть невыполненная работа, рассмотрите возможность отмены задачи.
Читайте также: