Ось X - точка наблюдения Ось Y - значение операционной скорости
Ожидания на уровне кластера
Ось X - точка наблюдения Ось Y - общее количество ожиданий СУБД
Ось X - точка наблюдения Ось Y - количество ожиданий типа IO
Ось X - точка наблюдения Ось Y - количество ожиданий типа LWLock
Ось X - точка наблюдения Ось Y - количество ожиданий типа IPC
Корреляционный анализ ожиданий и определение потенциально проблемных SQL запросов
Таблица коэффициентов корреляции
Сильная отрицательная корреляция между скоростью и ожиданиями .
Наиболее сильная положительная корреляция между всеми ожиданиями и ожиданиями типа IPC.
Сильная положительная корреляция между всеми ожиданиями и ожиданиями типа LWLock , IO .
Корреляционный анализ на уровне запросов SQL по ожиданию типа IPC
TOP-10 таблицы коэффициентов корреляции для SQL запросов с ожиданиями типа IPC
Столбцы таблицы
QUERYID : id SQL запроса
PGPRO_WR_QUERYID : HEX значение queryid , для использования в отчетах pgpro_pwr.
CORRELATION : коэффициент корреляции между ожиданиями типа IPC по всем SQL запросам и ожиданиям типа IPC по конкретному запросу.
CALLS : общее количество выполнений запроса за анализируемый период.
WAITINGS : Ожидания типа IPC по конкретному запросу.
WAITINGS TO CALL : Отношение количество ожиданий к количествe выполнений. Среднее количество ожидания за одно выполнение.
WAITINGS PCT : Относительная доля (промилле) количества ожиданий типа IPC для данного SQL запроса в общем количества ожиданий типа IPC по всем запросам.
Таблица отсортирована по столбцам "WAITINGS PCT" DESC , "WAITINGS TO CALL" DESC , "CORRELATION" DESC .
История выполнений и ожиданий запроса 3985919093425059746
События ожидания:
BgWorkerShutdown Ожидание завершения фонового рабочего процесса.
ParallelFinish Ожидание завершения вычислений параллельными рабочими процессами.
ExecuteGather Ожидание активности дочернего процесса при выполнении узла плана Gather.
Корреляционный анализ на уровне запросов SQL по ожиданию типа LWLock
TOP-10 таблицы коэффициентов корреляции для SQL запросов с ожиданиями типа LWLock.
Столбцы таблицы
QUERYID : id SQL запроса
PGPRO_WR_QUERYID : HEX значение queryid , для использования в отчетах pgpro_pwr.
CORRELATION : коэффициент корреляции между ожиданиями типа LWLock по всем SQL запросам и ожиданиям типа LWLock по конкретному запросу.
CALLS : общее количество выполнений запроса за анализируемый период.
WAITINGS : Ожидания типа LWLock по конкретному запросу.
WAITINGS TO CALL : Отношение количество ожиданий к количествe выполнений. Среднее количество ожидания за одно выполнение.
WAITINGS PCT : Относительная доля (промилле) количества ожиданий типа LWLock для данного SQL запроса в общем количества ожиданий типа IPC по всем запросам.
Таблица отсортирована по столбцам "WAITINGS PCT" DESC , "WAITINGS TO CALL" DESC , "CORRELATION" DESC .
История выполнений и ожиданий запроса 2092406791392746781
События ожидания:
ParallelHashJoin Ожидание синхронизации рабочих процессов в процессе выполнения узла плана Parallel Hash Join.
Корреляционный анализ на уровне запросов SQL по ожиданию типа IO
TOP-10 таблицы коэффициентов корреляции для SQL запросов с ожиданиями типа IO
Столбцы таблицы
QUERYID : id SQL запроса
PGPRO_WR_QUERYID : HEX значение queryid , для использования в отчетах pgpro_pwr.
CORRELATION : коэффициент корреляции между ожиданиями типа IO по всем SQL запросам и ожиданиям типа IO по конкретному запросу.
CALLS : общее количество выполнений запроса за анализируемый период.
WAITINGS : Ожидания типа IO по конкретному запросу.
WAITINGS TO CALL : Отношение количество ожиданий к количествe выполнений. Среднее количество ожидания за одно выполнение.
WAITINGS PCT : Относительная доля (промилле) количества ожиданий типа IO для данного SQL запроса в общем количества ожиданий типа IPC по всем запросам.
Таблица отсортирована по столбцам "WAITINGS PCT" DESC , "WAITINGS TO CALL" DESC , "CORRELATION" DESC .
История выполнений и ожиданий запроса 5680299967307342186
События ожидания:
DataFileExtend Ожидание расширения файла данных отношения.
DataFileRead Ожидание чтения из файла данных отношения.
Итог
Корреляционный анализ ожиданий СУБД может быть использован для поиска проблемных SQL запросов и первоначального анализа проблемы и путей оптимизации SQL запросов.
Работа DBA в чем то , очень отдаленно, напоминает работу хирурга.
Постановка задачи
Проанализировать причины снижения скорости СУБД и найти проблемные запросы
Дашбоард мониторинга производительности СУБД
Операционная скорость СУБД - снижается.
Ожидания СУБД - растут.
Порядок проведения корреляционного анализа
Операционная скорость на уровне кластера
Ось X - точка наблюдения Ось Y - значение операционной скорости
Ожидания на уровне кластера
Ось X - точка наблюдения Ось Y - количество ожиданий СУБД
Корреляционный анализ на уровне кластера
Таблица коэффициентов корреляции
Средняя отрицательная корреляция между операционной скоростью и ожиданиями.
Тип ожидания имеющий наибольшую корреляция с общим количеством ожиданий - IO.
Ось X - точка наблюдения Ось Y - количество ожиданий типа IO
Статистика выполнений и ожиданий по отдельным SQL запросам по типу ожидания IO
Таблица статистических данных выполнения и ожиданий по отдельным запросам.
Столбцы таблицы
QUERYID : id SQL запроса
CORRELATION : коэффициент корреляции между ожиданиями типа IO по всем SQL запросам и ожиданиям типа IO по конкретному запросу.
CALLS : общее количество выполнений запроса за анализируемый период.
WAITINGS : Ожидания типа IO по конкретному запросу.
WAITINGS TO CALL : Отношение количество ожиданий к количество выполнений. Среднее количество ожидания за одно выполнение.
Таблица отсортирована по столбцам QUERYID / WAITINGS TO CALL .
Статистика выполнений и ожиданий по выбранным SQL-запросам
-7843470278038126227
Статистика выполнений и ожиданий для queryid =-7843470278038126227
События ожидания:
DataFilePrefetch: Ожидание асинхронной предвыборки из файла данных отношения.
DataFileRead : Ожидание чтения из файла данных отношения.
DataFileWrite : Ожидание записи в файл данных отношения.
WALSync : Ожидание помещения файла WAL в надёжное хранилище.
WALWrite : Ожидание записи в файл WAL.
Результат анализа по запросу -7843470278038126227:
Выполнение процедуры ANALYZE во время продуктивной нагрузки на СУБД приводит к ожиданиям. Необходимо пересмотреть порядок проведения регламентных работ на СУБД.
-8198400089192679786
Статистика выполнений и ожиданий для queryid =-8198400089192679786
События ожидания:
DataFileRead : Ожидание чтения из файла данных отношения.
Результат анализа по запросу -8198400089192679786
Необходимо провести анализ плана выполнения с целью снижения операций дискового чтения.
Итог
Использование корреляционного анализа позволяет определить степень влияния потенциально проблемных SQL запросов на общую скорость и ожидания СУБД.
Нет, я не против тех, кто плавает медленно, но ты плыви по той дорожке, где твоя скорость сопоставима с другими пловцами! Нет же - там вообще не вариант, я же крутой, что мне с физкультурниками плавать...а начинаешь его обгонять, так он вместо того чтобы к разделителю дорожки прижаться, ускоряется, тебе мешает и сам не плывет... Почитайте уже правила и уважайте соседей. Или еще вариант - проплывет отрезок и стоит посередине, напротив тумбочки, отдыхает, мало того мешает другим разворачиваться, так еще и перед тобой стартует... ну ты же видишь, что подплывают быстро плавающие, ты же стоял все это время, постой еще 3 секунды, дай уплыть и плыви потом за ними спокойно, аж бесит!
Я на своих проектах учу людей - нужно работать так, чтобы с вами можно было комфортно взаимодействовать, не нужно "упираться рогом" и продавливать только то, что вам нужно, это, в конечном итоге, обернется против вас самих. И на тренировках ведь тоже самое, вот ты думаешь только о том, чтобы только тебе было хорошо, а в конечном итоге тебе мешают, ты мешаешь, столкновения, удары под водой, раздражение и тренировка превращается в ад!
Я бы вместо инструктажа по ТБ перед бассейном, их принципам равномерности потока из Бережливого производства учил и уважению к коллегам по цеху
Всем привет. На днях дошли руки поиграть, наконец-то, в дополнение для Elden Ring'а Shadow of the Erdtree. Но так-как вместо современного компа, у меня ведро с болтами, то я (как и многие другие) столкнулся с проблемой производительности. Сумрачный гений Миядзаки, как и большинство разрабов игр сегодня, считают что оптимизация для лохов, равно как и гибкие графические настройки, равно как и система генерации кадров. Это всё от лукавого. Поэтому игра любит тормозить на самых разных сборках системы.
Я очень долго игрался с настройками графики в самой игре, в виндовсе, в настройках нвидии, но всё было тщетно. Творение Бабадзаки очень любило начать лагать в открытом мире и в других рандомных местах, потому-что даже в этом аспекте игрок должен СТРАДАТЬ!!!! Это очень мешало нормальному игровому опыту.
И вот, когда я уже практически сдался и смирился с судьбой, то набрёл на моды на фпс на нексусмоде. Попробовал несколько вариантов и О ЧУДО, игра стала играться в стабильные 60 фпс. Да так, что я на радостях, даже смог себе позволить выкрутить большинство настроек в игре на "высокие". Там есть разные пресеты, так что можно выбрать оптимал под свою систему и предпочтения. Лично я, отключил эффекты ветра, дождя, эффект намокания поверхности. Но главное, отключил всю мелкую растительность. Оказалось, что львиную долю фпс сжирала эта ссаная травка!!
В итоге из плюсов: имею стабильные 60 фпс везде в игре, с выкрученными на "высокие" графическими эффектами. Из минусов: пропала вся мелкая растительность в игре и призрачные надгробия в дополнении( но зато стало отлично видно материалы и всякие рябины, которые теперь не перекрываются кустами и травой). Считаю это малой ценой за хороший фпс.
Ах да, чуть не забыл. Я-старый пират и не знаю слов лицензионного соглашения. Так что будет-ли мод работать на лицухе - в душе не....знаю.
Сорян за такую простыню, надеюсь я смогу помочь таким-же бедолагам, со слабыми компьютерами как и я. Ссылку на сборку оставлю в комментах. Ну и немного моих скринов прилагаются
Корреляция операционной скорости и ожиданий и событий ожидания при использовании индекса
Корреляция операционной скорости и ожиданий и событий ожидания без использовании индекса
Коэффициенты корреляции
SPEED CORR: коэффициент корреляции между количеством активных сессий к БД и операционной скоростью.
BUFFERPIN CORR: коэффициент корреляции между операционной скоростью и количеством ожиданий типа Bufferpin.
EXTENSION CORR: коэффициент корреляции между операционной скоростью и количеством ожиданий типа Extension.
IO CORR: коэффициент корреляции между операционной скоростью и количеством ожиданий типа IO.
IPC CORR: коэффициент корреляции между операционной скоростью и количеством ожиданий типа IPC.
LOCK CORR: коэффициент корреляции между операционной скоростью и количеством ожиданий типа Lock.
LWLOCK CORR: коэффициент корреляции между операционной скоростью и количеством ожиданий типа LWLock.
Сравнительный анализ корреляций
Коэффициент корреляции с событиями ожидания тяжеловесных и легковесных блокировок практически не изменился.
При проведении нагрузочного тестирования без использования индексов, возникает сильная отрицательная корреляция с ожиданиями взаимодействия с другим процессом и слабая отрицательная корреляция с ожиданиями подсистемы ввода-вывода.
Корреляция между типом ожидания (wait_event_type) и событием ожидания(wait_event) - при использовании индекса
Средняя и очень сильная корреляция с событиями ожидания:
Lock / transactionid: Ожидание завершения транзакции.
Lock / tuple: Ожидание при запросе блокировки для кортежа.
LWLock / LockManager: Ожидание при чтении или изменении информации о «тяжёлых» блокировках.
LWLock / ProcArray: Ожидание при обращении к общим структурам данных в рамках процесса (например, при получении снимка или чтении идентификатора транзакции в сеансе).
LWLock / BufferContent : Ожидание при обращении к странице данных в памяти.
LWLock / WALWrite: Ожидание при записи буферов WAL на диск.
Корреляция между типом ожидания (wait_event_type) и событием ожидания(wait_event) - без использования индекса
От слабой до сильной корреляции с событиями ожидания:
IO / RelationMapSync Ожидание помещения файла отображений отношений в надёжное хранилище.
IO / DSMFillZeroWrite Ожидание заполнения нулями файла, применяемого для поддержки динамической общей памяти.
IO / DataFileRead Ожидание чтения из файла данных отношения.
IO / DataFileImmediateSync Ожидание немедленной синхронизации файла данных отношения с надёжным хранилищем.
IPC / BufferIO Ожидание завершения буферного ввода/вывода.
IPC / ParallelFinish Ожидание завершения вычислений параллельными рабочими процессами.
IPC / BgWorkerShutdown Ожидание завершения фонового рабочего процесса.
Lock / transactionid: Ожидание завершения транзакции.
Lock / tuple: Ожидание при запросе блокировки для кортежа.
LWLock / BufferMapping Ожидание при связывании блока данных с буфером в пуле буферов.
LWLock / LockManager: Ожидание при чтении или изменении информации о «тяжёлых» блокировках.
LWLock / BufferContent : Ожидание при обращении к странице данных в памяти.
LWLock / SyncScan Ожидание при выборе начального положения для синхронизированного сканирования таблицы.
LWLock / ProcArray: Ожидание при обращении к общим структурам данных в рамках процесса (например, при получении снимка или чтении идентификатора транзакции в сеансе).
Корреляция между событием ожидания(wait_event) и SQL запросами
При использовании индекса
Без использования индекса
Пользовательский запрос и события ожидания оказывающий наибольшее влияние на снижение производительности БД.
С использованием индекса
select custom_test( $1 )
События ожидания, оказывающие наибольшее влияние на снижение производительности БД
Lock / transactionid: Ожидание завершения транзакции.
Lock / tuple: Ожидание при запросе блокировки для кортежа.
Без использования индекса
select custom_test( $1 )
События ожидания, оказывающие наибольшее влияние на снижение производительности БД
IO / DSMFillZeroWrite Ожидание заполнения нулями файла, применяемого для поддержки динамической общей памяти.
IO / DataFileRead Ожидание чтения из файла данных отношения.
IPC / BufferIO Ожидание завершения буферного ввода/вывода.
IPC / ParallelFinish Ожидание завершения вычислений параллельными рабочими процессами.
IPC / BgWorkerShutdown Ожидание завершения фонового рабочего процесса.
Lock / transactionid: Ожидание завершения транзакции.
Lock / tuple: Ожидание при запросе блокировки для кортежа.
LWLock / BufferMapping Ожидание при связывании блока данных с буфером в пуле буферов.
LWLock / LockManager: Ожидание при чтении или изменении информации о «тяжёлых» блокировках.
LWLock / BufferContent : Ожидание при обращении к странице данных в памяти.
LWLock / SyncScan Ожидание при выборе начального положения для синхронизированного сканирования таблицы.
LWLock / ProcArray: Ожидание при обращении к общим структурам данных в рамках процесса (например, при получении снимка или чтении идентификатора транзакции в сеансе).
Итог и практическое применение результатов корреляционного анализа
Результаты корреляционного анализа нагрузочного тестирования с использованием индексов являются нормальной картиной штатной работы СУБД в условиях массовых обновлений данных .
Корреляция с ожиданиями IO и IPC - с высокой долей уверенности , свидетельствует о неоптимальном плане выполнения SQL запроса.
Проблем в играх и рабочих задачах по визуализации замечено не было. Но видеокарта загружается слабовато. Справляется, хотя будто бы ее потолок производительности занижен.
Я в железе не разбираюсь. Может тут подскажут в какое значение выставить режим производительности. Или не трогать и оставить как есть.
На верхнем скрине по умолчанию так сказать стоит CURRENT. А частоты низкие.
Если выбрать Boost или base, частоты соответственно поднимаются.
Стоит ли вообще в это лесть ? Может эти параметры не отражают реальное положение вещей и карта нормально работает? Или это вообще не та программа, чтобы выставлять разгоны
При попытке поменять и принять изменения вылезает ошибка.
В конце февраля холдинг "Вертолёты России" побывал на АвтоВАЗе.
Целью поездки было изучение лучших практик в организации производственных процессов, повышения эффективности и развития производственной системы. Подробнее — в статье ниже👇
Когда я прибыл на АвтоВАЗ, первое, что меня впечатлило — это масштаб и уровень автоматизации. Каждая операция здесь выстроена и синхронизирована. Я бывал на многих предприятиях от Калининграда до Дальнего Востока, и могу с уверенностью сказать, что АвтоВАЗ по многим параметрам стоит особняком.
✔️Впечатления:
Конечно же, в первую очередь поражает конвейер: ты заходишь в цех — и видишь, как роботы слаженно перемещаются, выполняя свои задачи. Тележки перевозят огромное количество материалов и ресурсов. Слева по потолку летят двери автомобилей, справа движется кузов. Каждое движение четко отлажено, инструменты удобно подвешены для операторов, а сами действия сотрудников максимально автоматизированы. Подобное мало где можно увидеть в России. Чувствуется, что строили по уму, просчитывая каждый будущий шаг.
Интересной оказалась школа профессионального мастерства. Каждый сотрудник — будь то логист, мастер, оператор — проходит обязательное практическое обучение, отрабатывая каждое движение и каждый шаг до автоматизма. Затем он сдает экзамен и только после этого допускается к работе на своем месте. Такой подход позволяет существенно сократить количество ошибок и снизить уровень брака, повысив качество выпускаемой продукции. Это также способствует повышению вовлеченности и эффективности сотрудников.
В условиях кадрового голода и дефицита персонала такая практика могла бы стать решением многих проблем на каждом предприятии России. Предварительное обучение сотрудников, стандартизация их движений и требований позволили бы им работать с большей отдачей и продуктивностью.
С первого взгляда видно, что здесь внедрены лучшие мировые практики повышения эффективности, и это дает результат. Но при всей положительной стороне есть и проблемы, которые нельзя игнорировать.
➖Недостатки:
Со слов персонала большие проблемы начались после ухода Renault из России. Отсутствие поддержки со стороны международного партнера привело к необходимости перестраивать цепочки поставок и локализовать производство комплектующих. Это сказалось на стабильности и качестве материалов, используемых в производстве. Многое пришлось изобретать или с нуля. Этим обусловлен низкий темп выпуска новых моделей на рынок.
Среди главных недостатков стоит отметить проблемы с качеством: согласно официальной статистике до 18% автомобилей имеют гарантийные обращения. Это ставит АВТОВАЗ в сложное положение в сравнении с частными и зарубежными конкурентами.
А ведь какие крутые концепты стоят в его музее, которые ранее широко пиарили по телевизору с приставкой "скоро"! Сейчас лишь на табличке рядом можно встретить сухую фразу "заморожено в связи с уходом партнеров из России..."
1/3
По мелочи:
Не все сотрудники носят средства индивидуальной защиты, что говорит о недостаточном контроле за соблюдением техники безопасности. Стенды по управлению производством на рабочих местах не всегда заполняются и корректируются. Заметны проблемы с обслуживанием оборудования: масляные потеки, отсутствие своевременной ликвидации поломок. В некоторых цехах рабочие трудятся без вытяжки в условиях, вредных для здоровья.
Но давайте по чесноку: а где эти проблемы отсутствуют?
Эти проблемы характерны не только для АвтоВАЗа, но и для большинства предприятий России. Однако на АвтоВАЗе, несмотря на все трудности, сохраняется дух повышения эффективности и вовлеченности. Это заслуга большого отдела по развитию производственной системы, в котором работает более 140 человек. Эти специалисты пронизывают деятельность предприятия на всех уровнях, внедряя инструменты бережливого производства и поддерживая выстроенную систему улучшений. Поражает то, насколько вовлечены в подобные процессы обычные операторы на производстве (по разговору). Мы подобным похвастаться пока не можем.
Итог:
АвтоВАЗ — это не просто завод, это школа жизни для всех, кто хочет понять, как устроено настоящее производство. Здесь есть проблемы, но здесь же есть и решимость их преодолевать. И, честно, я уехал отсюда с уважением — и с желанием вернуться.
Ваш Оптимизатор⚙️
Больше интересной информации в моем телеграмм-канале по ссылке.
Мои статьи о текущей ситуации в промышленности, которые ты мог пропустить: