По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Проблемы с производительностью виртуальной машины на ESX/ESXi могут быть вызваны по различным причинам, например, ограничения в работе CPU, излишний объём памяти, задержкой в работе хранилищ или сети. Если одна или более из ваших виртуальных машин показывает высокое время ответа, то проверьте каждую из возможных причин, чтобы выявить слабое место системы. Неисправности Сервисы на гостевых виртуальных машинах работают медленно Приложения на гостевых виртуальных машинах отвечают с задержкой Гостевая виртуальная машина работает медленно или не отвечает Решение Каждый нижестоящий шаг содержит инструкции и ссылки на соответствующие документы. Шаги выстроены в наиболее удобном порядке для выявления и решения проблемы. Такая последовательность также обеспечивает наименьшую потерю данных. Замечание: после завершения каждого шага отмечайте сохраниться ли проблема с производительностью. Не пропускайте шаги и выполняйте их в указанном порядке. Статья включает в себя 4 основных части: Ограничения в работе CPU Излишний объём памяти Задержка в работе хранилища Сетевые задержки Ограничения в работе CPU Чтобы определить являются ли ограничения в работе CPU причиной низкой производительности: Введите команду esxtop, чтобы проверить перегружен ли ESXi/ESX server. Изучите load average в первой строке вывода команд. Средняя загрузка на уровне 1.00 означает, что физические процессоры (CPUs) машины с ESXi/ESX Server используются полностью, средняя загрузка 0.5 означает использование лишь половины ресурсов. Средняя загрузка на уровне 2.00 означает, что система перегружена. Изучите поле %READY, чтобы узнать долю времени, в течении которого виртуальная машина была готова, но не могла быть запланирована для запуска на физическом процессоре. При нормальных условиях эксплуатации это значение должно оставаться в пределах 5%. Если время готовности на виртуальных машинах с низкой производительностью слишком высокое, то необходимо проверить ограничения в работе процессора - убедитесь, что виртуальная машина не ограничена установленным лимитом процессора; Проверьте не ограничена ли виртуальная машина доступным объёмом ресурсов. Если средняя загрузка слишком высока и время, в течении которого машина готова к работе, не зависит от ограничений в работе процессора, то следует отрегулировать загрузку CPU хостa. Чтобы отрегулировать загрузку CPU хоста нужно: Увеличить количество физических CPU хоста Или уменьшить количество выделенных хосту виртуальных CPU. Чтобы уменьшить количество выделенных хосту виртуальных CPU нужно уменьшить общее количество CPU, выделенных всем запущенным виртуальным машинам на ESX хосте. Или уменьшить количество запущенных виртуальных машин Если Вы используете ESX 3.5, проверьте является ли проблемой совместное использование IRQ. Перегрузка памяти Чтобы определить является ли причиной низкой производительности перегрузка памяти необходимо: Ввести команду esxtop и установить перегружена ли память ESXi/ESX server. Изучите MEM overcommit avg в первой строке вывода команд. Это значение отражает соотношение требуемого объёма памяти к объёму доступной памяти, минус 1. Пример Если виртуальной машине требуется 4 ГБ ОЗУ и хост имеет 4 ГБ ОЗУ, то соотношение равно 1:1. После вычитания 1 (из 1:1) поле MEM overcommit avg выдаст значение 0. Память не перегружена и нет необходимости в дополнительном объёме. Если виртуальной машине требуется 6 ГБ ОЗУ и хост имеет 4 ГБ ОЗУ, то соотношение равно 1.5:1. После вычитания 1 (из 1:1) поле MEM overcommit avg выдаст значение 0. Память перегружена на 50% и необходимо на 50% больше ОЗУ, чем доступно. Если память перегружена, то следует отрегулировать количество памяти хоста. Для этого необходимо: Увеличить количество физической ОЗУ хоста Или уменьшить количество памяти, выделяемое виртуальным машинам. Для уменьшения объёма выделенной ОЗУ нужно уменьшить общее количество ОЗУ, выделенной всем виртуальным машинам хоста Или уменьшить общее количество виртуальных машин хоста. Определить состояние виртуальных машин: ballooning или swapping Для определения состояния: Запустите esxtop Введите m для памяти Введите f для полей Выберите букву J для Memory Ballooning Statistics (MCTL) Посмотрите на значение MCTLSZ. MCTLSZ (MB) отображает количество физической памяти гостя, переданной balloon driver. Введите f для поля Выберите букву для Memory Swap Statistics (SWAP STATS) Посмотрите на значение SWCUR. SWCUR (MB) отражает текущую загрузку свопа Для решения этой проблемы убедитесь, что ballooning или swapping не вызваны неправильно заданным объёмом памяти. Если объём памяти задан неверно, то его следует переназначить Задержки в работе хранилища Чтобы определить являются ли задержки в работе хранилища причиной низкой производительности: Проверьте связаны ли проблемы с локальным хранилищем. Перенесите виртуальные машины в другое хранилище. Уменьшите количество виртуальных машин на LUN. Поищите похожие записи на Windows гостей: The device, DeviceScsiPort0, did not respond within the timeout period Используя esxtop найдите высокое время задержки DAVG. Определите максимальную пропускную способность ввода/вывода с помощью команды iometer. Сравните результаты iometer, полученные на VM, с результатами физической машины с этим же хранилищем. Проверьте наличие конфликтов с резервированием SCSI. Если вы используете iSCSI хранилище и Jumbo фреймы, то следует проверить правильность конфигурации. При использовании iSCSI хранилища и многоканального iSCSI Software Initiator убедитесь, что всё правильно сконфигурировано. Если вы обнаружили проблемы, связанные с хранилищем: Убедитесь в том, что ваша аппаратура и HBA карты сертифицированы для работы с ESX/ESXi. Проверьте обновления вашего физического сервера. Проверьте обновления прошивки вашего HBA. ESX верно определяет режим и политику пути для вашего SATP Storage вашего типа и PSP Path Selection. Сетвые задержки Производительность сети тесно связана с производительностью CPU. Поэтому сначала необходимо проверить работу CPU и после этого переходить к поиску проблем в сети. Для определения проблем с производительностью сети: Проверьте максимальную пропускную способность от виртуальной машины с помощью Iperf. Замечание: VMware не поддерживает и не рекомендует какую-либо конкретную стороннюю программу. Во время использования Iperf измените размер окна TCP до 64 K. Это также влияет на производительность. Для изменения размера окна TCP: На стороне сервера введите: iperf -s На стороне клиента введите: iperf.exe -c sqlsed -P 1 -i 1 -p 5001 -w 64K -f m -t 10 900M Запустите Iperf на машине вне хоста ESXi/ESX. Сравните полученные результаты с ожидаемыми результатами, с учётом физической среды. Запустите Iperf на другой машине вне хоста ESXi/ESX, VLAN и физический свитч должны оставаться прежними. Если производительность в порядке, а проблема появляется только на машине, расположенной в другом месте, то проблему нужно искать в вашей сетевой среде. Запустите Iperf между двумя виртуальными машинами на общем сервере/portgroup/vswitch. Если результат положительный, то можно исключить проблемы с памятью, CPU и хранилищем. Если вы обнаружили «бутылочное горлышко» вашей сети, то: Если вы используете iSCSI хранилище и Jumbo фреймы, то следует проверить правильность конфигурации. Если вы используете Network I/O Control, то необходимо проверить правильность конфигурации общих ресурсов и ограничений для вашего траффика. Убедитесь в правильности работы трафик шейпинга.
img
В этой статье расскажем что такое хеш, хеширование и рассмотрим какие есть алгоритмы хеширования. Что такое хеширование? Хеширование означает использование некоторой функции или алгоритма для сопоставления данных объекта с некоторым репрезентативным целочисленным значением. Результат этой функции известен как хеш-значение или просто хэш (hash). Хорошая хеш-функция использует алгоритм одностороннего хеширования, или, другими словами, хэш нельзя преобразовать обратно в исходный ключ. Обеспечение того, чтобы данные не изменялись (модифицировались) во время передачи, очень важно, и чтобы помочь нам определить, сохраняется ли целостность сообщения, мы можем использовать алгоритмы хеширования. Алгоритмы хеширования предназначены для получения входных данных, например, строки текста или файла, а затем использования односторонней функции для создания дайджеста. Дайджест (digest) - это хеш-представление ввода, и его нельзя отменить. Каждый уникальный файл или сообщение генерирует уникальное хеш-значение (дайджест). Это означает, что, если данные каким-либо образом изменены, значение хеш-функции будет однозначно другим. На следующем рисунке показан процесс одностороннего хеширования: Как этот процесс работает между устройствами? Представьте, что отправитель, хост A, хочет отправить сообщение на устройство назначения, хост B. Вместо того, чтобы хост A отправлял сообщение как есть, хост A создаст дайджест сообщения. Как только в дайджесте будет создано сообщение, хост A отправит и сообщение, и дайджест хосту B. На следующем рисунке показано, что хост A отправляет сообщение с дайджестом хосту B: Когда хост B получает сообщение от источника, он также создает дайджест сообщения и сравнивает его с дайджестом, полученным от хоста A. Если оба значения хеш-функции (дайджесты) совпадают, это означает, что сообщение не было изменено во время передачи. Однако, если значения дайджеста различаются, это означает, что где-то по пути сообщение было изменено и, следовательно, содержимое сообщения не совпадает. Возможно ли, что два разных файла будут иметь одинаковое хеш-значение? Хотя алгоритмы хеширования предназначены для создания уникального дайджеста для каждого уникального файла, в прошлом были случаи, что у двух разных файлов одно и то же значение хеш-функции. Это известно, как хэш-коллизия. Если произошла коллизия хеширования, это означает, что алгоритм хеширования, используемый во время процесса, уязвим, и ему не следует доверять. Однако некоторые из самых популярных алгоритмов хеширования, которые используются в настоящее время, подвержены коллизии хеширования. Алгоритмы хеширования Message Digest 5 (MD5) - это алгоритм хеширования, который создает 128-битный дайджест. Алгоритм MD5 был реализован во многих системах на протяжении многих лет и работал хорошо до тех пор, пока не произошла коллизия хеширования. Это сделало MD5 уязвимым алгоритмом хеширования, который больше не рекомендуется. На следующем рисунке представлен процесс хеширования MD5: Как показано на предыдущей диаграмме, сообщение отправляется алгоритму MD5, который затем преобразуется в 128-битный дайджест. Хотя MD5 все еще используется во многих системах, рекомендуется использовать более безопасную функцию, такую как Secure Hashing Algorithm 2 (SHA-2). Еще одна хорошо известная функция хеширования - это Secure Hashing Algorithm 1 (SHA-1). Этот алгоритм хеширования был создан еще в 1990-х годах Национальным институтом стандартов и технологий (NIST). NIST разработал этот алгоритм с функциями, аналогичными MD5. Одним из основных преимуществ использования SHA-1 для проверки целостности является то, что он создает 160-битный дайджест любого сообщения или файла. На следующем рисунке представлена функция SHA-1: Хотя SHA-1 считается лучше, чем MD5, так как создает более крупный дайджест, он работает медленнее, чем MD5, и содержит уязвимости в самом алгоритме. Однако NIST разработал более новую версию, известную как SHA-2. SHA-2 позволяет создавать дайджест с использованием битов большого размера, таких как: SHA-224 (224 bit) SHA-256 (256 bit) SHA-384 (384 bit) SHA-512 (512 bit) Имейте в виду, что даже если вы знаете, что для проверки целостности сообщения использовалось хеширование, оно все равно уязвимо для атаки MiTM. Представьте, что источник отправляет сообщение с хеш-значением. Злоумышленник может перехватить сообщение, изменить его содержимое и пересчитать новый хэш перед его отправкой адресату. Чтобы помочь получателю проверить подлинность источника, нам нужно применить Hash Message Authentication Code (HMAC) к нашему процессу хеширования. Чтобы добавить аутентификацию источника во время процесса хеширования, добавляется HMAC. HMAC - это секретный ключ, который объединяет входное сообщение с алгоритмом хеширования, таким как MD5 или SHA-1, для создания уникального дайджеста. На следующем рисунке показано использование HMAC с функцией хеширования: Поскольку этот секретный ключ (HMAC) используется только отправителем и предполагаемым получателем, значение выходного дайджеста будет просто зависеть от фактического входного сообщения (данных) и секретного ключа, используемого для применения дополнительного уровня безопасности для аутентификации источника. Поскольку источник и место назначения будут единственными сторонами, которые знают секретный ключ (значение HMAC), атака MiTM не будет успешной с точки зрения нарушения целостности любых сообщений, которые проходят через сеть. На следующем скриншоте показан секретный ключ (HMAC), примененный к строке текста: Как показано на предыдущем рисунке, текстовая строка (сообщение) была объединена с секретным ключом и обработана с использованием алгоритма хеширования MD5 и SHA-1 для создания уникального дайджеста.
img
Сетевые устройства добавляются в сети для решения целого ряда проблем, включая подключение различных типов носителей и масштабирование сети путем переноса пакетов только туда, куда они должны идти. Однако маршрутизаторы и коммутаторы сами по себе являются сложными устройствами. Сетевые инженеры могут построить целую карьеру, специализируясь на решении лишь небольшого набора проблем, возникающих при передаче пакетов через сетевое устройство. Рисунок 1 используется для обсуждения обзора проблемного пространства. На рисунке 1 есть четыре отдельных шага: Пакет необходимо скопировать с физического носителя в память устройства; это иногда называют синхронизацией пакета по сети. Пакет должен быть обработан, что обычно означает определение правильного исходящего интерфейса и изменение пакета любым необходимым способом. Например, в маршрутизаторе заголовок нижнего уровня удаляется и заменяется новым; в фильтре пакетов с отслеживанием состояния пакет может быть отброшен на основании внутреннего состояния и т.п. Пакет необходимо скопировать из входящего интерфейса в исходящий. Это часто связано с перемещениями по внутренней сети или шине. Некоторые системы пропускают этот шаг, используя один пул памяти как для входящего, так и для исходящего интерфейсов; они называются системами с общей памятью. Пакет необходимо скопировать обратно на исходящий физический носитель; это иногда называют синхронизацией пакета по проводу. Примечание. Небольшие системы, особенно те, которые ориентированы на быструю и последовательную коммутацию пакетов, часто используют общую память для передачи пакетов с одного интерфейса на другой. Время, необходимое для копирования пакета в память, часто превышает скорость, с которой работают интерфейсы; системы с общей памятью избегают этого при копировании пакетов в память. Таким образом, проблемное пространство, обсуждаемоениже, состоит из следующего: Как пакеты, которые необходимо пересылать сетевым устройством, переносятся с входящего на исходящий физический носитель, и как пакеты подвергаются обработке на этом пути? Далее обсуждается часть решения этой проблемы. Физический носитель – Память Первым шагом в обработке пакета через сетевое устройство является копирование пакета с провода в память. Для иллюстрации этого процесса используется рисунок 2. На рисунке 2 представлены два этапа: Шаг 1. Набор микросхем физического носителя (PHY chip) будет копировать каждый временной (или логический) слот с физического носителя, который представляет один бит данных, в ячейку памяти. Эта ячейка памяти фактически отображается в приемное кольцо, которое представляет собой набор ячеек памяти (буфер пакетов), выделенный с единственной целью - прием пакетов, синхронизируемых по сети. Приемное кольцо и вся память буфера пакетов обычно состоят из памяти одного типа, доступной (совместно используемой) всеми коммутирующими компонентами на принимающей стороне линейной карты или устройства. Примечание. Кольцевой буфер используется на основе одного указателя, который увеличивается каждый раз, когда новый пакет вставляется в буфер. Например, в кольце, показанном на рисунке 2, указатель будет начинаться в слоте 1 и увеличиваться через слоты по мере того, как пакеты копируются в кольцевой буфер. Если указатель достигает слота 7 и поступает новый пакет, пакет будет скопирован в слот 1 независимо от того, было ли обработано содержимое слота 1 или нет. При коммутации пакетов наиболее трудоемкой и трудной задачей является копирование пакетов из одного места в другое; этого можно избежать, насколько это возможно, за счет использования указателей. Вместо перемещения пакета в памяти указатель на ячейку памяти передается от процесса к процессу в пределах пути переключения. Шаг 2. Как только пакет синхронизируется в памяти, некоторый локальный процессор прерывается. Во время этого прерывания локальный процессор удалит указатель на буфер пакетов, содержащий пакет, из кольца приема и поместит указатель на пустой буфер пакетов в кольцо приема. Указатель помещается в отдельный список, называемый входной очередью. Обработка пакета Как только пакет окажется во входной очереди, его можно будет обработать. Обработку можно рассматривать как цепочку событий, а не как одно событие. Рисунок 3 иллюстрирует это. Перед коммутацией пакета должна произойти некоторая обработка, например преобразование сетевых адресов, поскольку она изменяет некоторую информацию о пакете, используемом в фактическом процессе коммутации. Другая обработка может происходить после переключения. Коммутация пакета - довольно простая операция: Процесс коммутации ищет адрес назначения Media Access Control (MAC) или физического устройства в таблице пересылки (в коммутаторах это иногда называется таблицей обучения моста или просто таблицей моста). Исходящий интерфейс определяется на основе информации в этой таблице. Пакет перемещается из входной очереди в выходную очередь. Пакет никоим образом не изменяется в процессе коммутации; он копируется из очереди ввода в очередь вывода. Маршрутизация Маршрутизация - более сложный процесс, чем коммутация. Рисунок 4 демонстрирует это. На рисунке 4 пакет начинается во входной очереди. Тогда коммутационный процессор: Удаляет (или игнорирует) заголовок нижнего уровня (например, кадрирование Ethernet в пакете). Эта информация используется для определения того, должен ли маршрутизатор получать пакет, но не используется во время фактического процесса коммутации. Ищет адрес назначения (и, возможно, другую информацию) в таблице пересылки. Таблица пересылки связывает место назначения пакета со next hop пакета. Next hop может быть следующий маршрутизатор на пути к месту назначения или сам пункт назначения. Затем коммутирующий процессор проверяет таблицу interlayer discovery, чтобы определить правильный физический адрес, по которому следует отправить пакет, чтобы доставить пакет на один шаг ближе к месту назначения. Новый заголовок нижнего уровня создается с использованием этого нового адреса назначения нижнего уровня и копируется в пакет. Обычно адрес назначения нижнего уровня кэшируется локально вместе со всем заголовком нижнего уровня. Весь заголовок перезаписывается в процессе, называемом перезапись заголовка MAC. Теперь весь пакет перемещается из очереди ввода в очередь вывода. Почему именно маршрутизация? Поскольку маршрутизация-это более сложный процесс, чем коммутация, то почему именно маршрутизация? Для иллюстрации будет использован рисунок 5. Существует по меньшей мере три конкретных причины для маршрутизации, а не коммутации в сети. На рисунке 5 в качестве примера приведена небольшая сеть: Если канал связи [B,C] является физическим носителем другого типа, чем два канала связи, соединяющиеся с хостами, с различными кодировками, заголовками, адресацией и т. д., то маршрутизация позволит A и D общаться, не беспокоясь об этих различиях в типах каналов связи. Это можно было бы преодолеть в чисто коммутируемой сети с помощью преобразования заголовков, но преобразование заголовков на самом деле не уменьшает количество работы, чем маршрутизация в пути коммутации, поэтому нет особого смысла не маршрутизировать для решения этой проблемы. Другое решение может заключаться в том, чтобы каждый тип физического носителя согласовывал единую адресацию и пакетный формат, но, учитывая постоянное развитие физических носителей и множество различных типов физических носителей, это кажется маловероятным решением. Если бы вся сеть была коммутируемой, то B должен был бы знать полную информацию о достижимости для D и E, в частности, D и E должны были бы знать адреса физического или нижнего уровня для каждого устройства, подключенного к сегменту хоста за пределами C. Это может быть не большой проблемой в малой сети, но в больших сетях с сотнями тысяч узлов или глобальным интернетом это не будет масштабироваться—просто слишком много состояний для управления. Можно агрегировать информацию о достижимости с помощью адресации нижнего уровня, но это сложнее, чем использовать адрес более высокого уровня, назначенный на основе топологической точки присоединения устройства, а не адрес, назначенный на заводе, который однозначно идентифицирует набор микросхем интерфейса. Если D отправляет широковещательную рассылку «всем устройствам в сегменте», A получит широковещательную рассылку, если B и C являются коммутаторами, но не если B и C являются маршрутизаторами. Широковещательные пакеты нельзя исключить, поскольку они являются неотъемлемой частью практически каждого транспортного протокола, но в чисто коммутируемых сетях широковещательные передачи представляют собой очень трудно решаемую проблему масштабирования. Трансляции блокируются (или, скорее, потребляются) на маршрутизаторе. Примечание. В мире коммерческих сетей термины маршрутизация и коммутация часто используются как синонимы. Причина этого в первую очередь в истории маркетинга. Первоначально маршрутизация всегда означала «переключаемая программно», тогда как коммутация всегда означала «переключаемая аппаратно». Когда стали доступны механизмы коммутации пакетов, способные переписывать заголовок MAC на аппаратном уровне, они стали называться «коммутаторами уровня 3», которые в конечном итоге были сокращены до простой коммутации. Например, большинство «коммутаторов» центров обработки данных на самом деле являются маршрутизаторами, поскольку они действительно выполняют перезапись MAC-заголовка для пересылаемых пакетов. Если кто-то называет часть оборудования коммутатором, то лучше всего уточнить, является ли это коммутатором уровня 3 (правильнее - маршрутизатор) или коммутатором уровня 2 (правильнее - коммутатором). Примечание. Термины канал связи и соединение здесь используются как синонимы. Канал связи - это физическое или виртуальное проводное или беспроводное соединение между двумя устройствами. Equal Cost Multipath В некоторых проектах сети сетевые администраторы вводят параллельные каналы между двумя узлами сети. Если предположить, что эти параллельные каналы равны по пропускной способности, задержке и т. д., они считаются равными по стоимости. В нашем случае каналы считаются многопутевыми с равной стоимостью (equal cost multipath - ECMP). В сетевых технологиях в производственных сетях часто встречаются два варианта. Они ведут себя одинаково, но отличаются тем, как каналы группируются и управляются сетевой операционной системой.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59