Записки оптимизатора 1С (ч.10): Как понять, что процессор — основная боль на вашем сервере СУБД MS SQL Server?

Назрел пост, связанный нагрузкой на процессор сервера СУБД MS SQL Server. Вроде бы чего тут обсуждать, всё же очевидно – есть системные счетчики, показывающие нагрузку в процентах. Смотрим на них и понимаем, всё ли у нас замечательно с сервером, хорошо ли утилизируются ресурсы, аль не хватает. Когда нагрузка на процессоре ~100%, огромные очереди к нему, то тут действительно всё просто и обсуждать особо нечего. Сценарий простой: либо ищем что его нагружает, либо система переросла процессор и ему пора накинуть мощностей. А вот когда нагрузка держится на среднем уровне, но при этом есть очереди и ожидания, то здесь далеко не все так очевидно.

https://habr.com/ru/companies/softpoint/articles/891640/

#perfexpert #нагрузка_на_процессор #очереди_к_процессору #виртуализация #numa #softnuma #hyperthreading

Записки оптимизатора 1С (ч.10): Как понять, что процессор — основная боль на вашем сервере СУБД MS SQL Server?

Назрел пост, связанный с нагрузкой на процессор сервера СУБД MS SQL Server. Вроде бы чего тут обсуждать, всё же очевидно – есть системные счетчики, показывающие нагрузку в процентах. Смотрим на них и...

Хабр

bachikin

#mo4 #marikinonline4 #bachikin #paws #sexy #ikenuma #numa

i think i'm down bad for her

Never Forget The Originals - Video

1,249 points • 64 comments

9GAG

Random #linux #numa question.

If I have 2 processes, using the same shared library, the immutable (TEXT and RODATA) sections are usually loaded only once in the physical memory, and mapped into both process.

However, if each process asks the kernel to pin its memory on a different NUMA node, anyone knows if the kernel duplicates the physical pages on each numa node, if only one process wins, or if this results in bad behaviour (pages going back and forth) ?

Boost reduce the rate of cache misses in your CPUs

К вопросу использования #epoll вместо хорошо знакомых и «традиционных» select & poll. Т.е. асинхронной работы с чем-либо посредством polling’а и мультиплексирования.

Недавно пришлось заниматься реализацией очереди событий для AMQP-CPP. В одном из продуктов решено сделать связь агентских частей с основным «контроллером» через #AMQP, в качестве брокера #RabbitMQ (всё стандартно, обычный кластер и TLS-соединения).

Вот только агенты продукта активно используют асинхронно-реактивное программирование с хорошей «горизонтальной масштабируемостью». Когда достигнуто полноценное sharing nothing, не просто горизонтальная масштабируемость через lock-free или wait-free и закон Амдала. Исключается много всего и сразу, как старый-добрый cache ping-pong, так и печаль с false sharing.

Отсюда внутри агентов и своё управление потоками с выделениями памяти. Не только в плане heap (динамической памяти, со своими аллокаторами а-ля #jemalloc от #Facebook), но и приколы вокруг узлов #NUMA и даже huge pages (снижающих «давление» на #TLB, меньше промахов).

Первая же проблема выплыла почти сразу — не реально использовать библиотеку AMQP-CPP с уже предоставляющейся поддержкой #libev, #libuv, #libevent. Несовместимы эти очереди сообщений с имеющейся моделью управления потоками и организации задач на агентах.

Почему был взят epoll

Подход используемый в #epoll выглядит более современно, меньше копирований памяти между user space и kernel space. А при появлении данных в отслеживаемом файловом дескрипторе можно напрямую перейти по указателю на объект класса или структуру данных. Тем самым обходиться без поиска дескриптора по индексным массивам/контейнерам. Сразу же работать с экземплярами объектов оборачивающих нужное #tcp -соединение, того самого, в которое и пришли данные.

И тут обозначилась вторая проблема, что используема AMQP-библиотека не вычитывает данные целиком из потока сокета. Например, забирает данные лишь до тех пор, пока не насытится автомат состояний (finite-state machine), выполняющий парсинг сущностей AMQP-протокола.

Используя #epoll приходится выбирать на какой вариант обработки событий ориентироваться:

  • срабатывание оповещений «по уровню» (level-triggered),
  • выбрасывания событий «по фронту» (edge-triggered).

И беда с библиотекой в очередной раз показала, что нельзя использовать работу «по фронту» (edge-triggered) не изучив досконально работу подсистемы отвечающей за вычитывание данных из файловых дескрипторов. И появление флага EPOLLET в коде является маркером, о том, чтобы проводить аудит использовавшихся решений.

Про Edge Triggered Vs Level Triggered interrupts можно почитать в https://venkateshabbarapu.blogspot.com/2013/03/edge-triggered-vs-level-triggered.html)

#programming #linux #трудовыебудни

Akkoma

Raspberry Pi boosts Pi 5 performance with SDRAM tuning | Jeff Geerling

Link📌 Summary: Raspberry Pi工程師對Pi 5的SDRAM時序和內存設置進行了調整,帶來了10-20%的速度提升;在超頻至3.2 GHz後,速度提升達32%。這些改進可能會在未來的固件更新中提供給所有Pi 5和Pi 4用戶。透過NUMA模擬技術和小幅的SDRAM設定調整,尤其對多核心工作負載有著顯著的性能改善,Pi 5在這方面的增益更為明顯。

🎯 Key Points:
- Raspberry Pi的工程師與Micron協作,調整SDRAM的刷新間隔和時序,改善了內存性能。
- Pi 5和Pi 4均可受益於這些調整,但Pi 5的效果更顯著,因其擁有更快的SDRAM和內部總線。
- 使用NUMA模擬可以進一步提升多核心處理器的效能,方式為更新Pi的操作系統至最新版本。
- 超頻至3.2 GHz能顯著提升性能,達到比默認設置多32%的提升。
- 這些優化有可能在未來成為默認設置,提升Raspberry Pi在市場中的競爭力。

🔖 Keywords: #RaspberryPi #SDRAM #NUMA #超頻 #性能提升

Raspberry Pi boosts Pi 5 performance with SDRAM tuning | Jeff Geerling

Optimize your applications for NUMA with OpenMP, presented by Ruud van der Pas in this SC24 booth talk video. Learn:
🧵 NUMA & Hardware Threads Basics
🔍 Uncover NUMA on Linux
⚙️ Master First Touch Placement Policy
🎛 Use OpenMP Env. Vars for thread placement

Get practical insights into keeping threads close to data, maximizing performance on NUMA architectures. Whether you’re optimizing or just starting out, watch it. 🎯
https://www.youtube.com/watch?v=9wq-lBf_AZk

#SC24 #OpenMP #NUMA #PerformanceOptimization

NUMA: Stay close to home with OpenMP

YouTube
The result is something that can be trivially parallelized with #OpenMP.
As an alternative, it's possible to use the #multiGPU support in #GPUSPH to run code in parallel. This is obviously less efficient, although it may be a good idea to use it in #NUMA setups (one thread per NUMA node, OpenMP for the cores in the same node). This is not implemented yet.

Porque é que não dá para gravar as imagens do LinkedIn?

#Alapiseira

Ratisbona Iberia on LinkedIn: #oneteam #numa #ratisbona #lisboa #numastays #lisbon #hotel

https://www.linkedin.com/posts/ratisbonaiberia_oneteam-numa-ratisbona-activity-7245718990344310785-RvzA?utm_source=share&utm_medium=member_android

> E já estamos a dar os primeiros passos na obra que se vai tornar mais um hotel incrível da Numa. Fica atento aos próximos capítulos! 👷😉🎬 . We are already…

Ratisbona Iberia on LinkedIn: #oneteam #numa #ratisbona #lisboa #numastays #lisbon #hotel

E já estamos a dar os primeiros passos na obra que se vai tornar mais um hotel incrível da Numa. Fica atento aos próximos capítulos! 👷😉🎬 . We are already…

Next milestone on #sun T4-2 of T2 SDE #linux #numa SPARC64 by @ReneRebe Now the shitty #firefox needs some #sparc love 😅😂