As my #Friendica server, my-place.social, has grown to some 315 active users in just 5 months, I'm starting to hit up against #mariaDB limitations relating to the default memory manager, #MALLOC. This weekend I'm going to replace it with #jemalloc to reduce stalls, memory fragmentation issues, out-of-memory problems, and instability.

Friendica puts a lot of pressure on the database, mariaDB in this case, much more than Mastodon apparently does on PostgreSQL. My feeling is that the Mastodon developers have done much better database tuning.

But, none-the-less, the update must be done. This will be done on an Ubuntu server.

Does anyone who has changed the MariaDB or mySQL memory manager have any advice to share to keep me out of trouble?

BTW, #TCMalloc is not an option as other admins have reported crashes using it with Friendica.

[Перевод] Механизм перезапускаемых последовательностей (Rseq) при работе с TCMalloc

❯ Кэши для отдельных ядер процессора В TCMalloc кэши для отдельных ядер процессора реализуются при помощи перезапускаемых последовательностей (man rseq(2)) под Linux. Эту возможность ядра разработали Пол Тёрнер и Эндрю Хантер из Google , а также Мэтью Дезнойерс из EfficiOS. При помощи перезапускаемых последовательностей можно вплоть до завершения выполнять область памяти (атомарно, относительно других потоков, выполняющихся на том же ядре процессора), либо выходить из этого процесса, если ядро прервёт этот процесс, например, вытеснив его или прервавшись на обработку сигнала. Если вы хотите организовать перезапуск системы при миграции с ядра на ядро или при вытеснении процесса, то наиболее общий случай такой операции можно оптимизировать (не переносить с ядра на ядро тот процесс, который уже выполняется), избегая атомарных операций. Можно оптимизировать и более редкий случай – вытеснение как таковое. В результате такого компромисса нужно обеспечить, чтобы на всех путях выполнения нашего кода поддерживались такие операции перезапуска. Вся последовательность, кроме окончательного сохранения в памяти, когда изменение фиксируется, должна быть приспособлена к перезапуску.

https://habr.com/ru/companies/timeweb/articles/789470/

#timeweb_статьи_перевод #Rseq #TCMalloc #Google #EfficiOS #ядро #ID #ПК #C++ #массивы #ЦП #begin #x86 #процессор #кэш

Механизм перезапускаемых последовательностей (Rseq) при работе с TCMalloc

❯ Кэши для отдельных ядер процессора В TCMalloc кэши для отдельных ядер процессора реализуются при помощи перезапускаемых последовательностей (man rseq(2)) под Linux. Эту возможность ядра...

Хабр