Forwarded from Записки админа
LPC_2019_kernel_fastboot_on_the_way.pdf
692.9 KB
Вот вам еще про "потрошки" - доклад про новый интерфейс IO в линукс
https://www.youtube.com/watch?v=-5T4Cjw46ys #linux #kernel #io
https://www.youtube.com/watch?v=-5T4Cjw46ys #linux #kernel #io
Forwarded from Записки админа
🐧 Почему-то новость о LSM (Linux Security Modules) - новом наборе патчей от Google, прошла тихо и незаметно. Меж тем, выглядит оно интересно. Обсуждение доступно по ссылке https://lkml.org/lkml/2019/12/20/641 Людям, интересующимся безопасностью ядра и BPF, по ссылке сходить обязательно (если вы там ещё не были, конечно).
#kernel #security #bpf
#kernel #security #bpf
Forwarded from Записки админа
🐧 Чтиво про трейсинг, ftrace и утилиты для работы с ним - trace-cmd и KernelShark. https://embeddedbits.org/tracing-the-linux-kernel-with-ftrace/
#kernel #ftrace #напочитать
#kernel #ftrace #напочитать
Forwarded from Записки админа
🐧 Таких материалов на русском языке не так уж и много, так что бегом читать: CVE-2019-18683: Эксплуатация уязвимости в подсистеме V4L2 ядра Linux от a13xp0p0v.
По ссылке PoC эксплойт, демонстрация, обход KASLR, SMEP, SMAP, повышение привелегий и детальное объяснение всего происходящего.
#security #kernel #напочитать
По ссылке PoC эксплойт, демонстрация, обход KASLR, SMEP, SMAP, повышение привелегий и детальное объяснение всего происходящего.
#security #kernel #напочитать
Forwarded from Записки админа
🐧 kmon - интересная утилита для просмотра информации о ядре и работы с модулями ядра в системе. Посмотрел сам и показал в заметке.
📗 https://sysadmin.pm/kmon/
#kmon #kernel #linux
📗 https://sysadmin.pm/kmon/
#kmon #kernel #linux
Forwarded from Записки админа
🐧 Пока мы тут с вами сидим, Microsoft предложила модуль ядра, который обеспечивает проверку целостности системы. Используя этот модуль, мы сами можем определить список допустимых операций, и методы верификации компонентов системы. Допускается работа в двух режимах - пассивный, когда просто ведётся логирование, и активный - при котором выполняется обработка (ограничения, разрешения и т. п.) происхоящего.
Объёмно и подробно по ссылке (en): https://lkml.org/lkml/2020/4/6/941
#kernel #lsm #security
Объёмно и подробно по ссылке (en): https://lkml.org/lkml/2020/4/6/941
#kernel #lsm #security
Forwarded from Sysadmin Tools 🇺🇦
Очень полезная инфа, если вы админ/devops и хотя бы немного умеете в #python
https://habr.com/ru/company/timeweb/blog/526818/
#kvm #devops #linux #kernel
https://habr.com/ru/company/timeweb/blog/526818/
#kvm #devops #linux #kernel
Хабр
Хост KVM в паре строчек кода. Примеры на C++ и на Python от эксперта Timeweb
Привет! Сегодня публикуем статью о том, как написать хост KVM. Мы увидели ее в блоге Serge Zaitsev, перевели и дополнили собственными примерами на Python для те...
Forwarded from Записки админа
🐧 Вот тут доступна обновлённая версия бесплатной книги по программированию модулей ядра Linux: https://sysprog21.github.io/lkmpg/
#kernel #книга #фидбечат
#kernel #книга #фидбечат
Forwarded from Записки админа
🐧 Getting started with Linux kernel development. Перед сном можно, например, почитать вводную в разработку для ядра. Там совсем простые вещи, но тем не менее.
#linux #kernel #фидбечат
#linux #kernel #фидбечат
Forwarded from Записки админа
⚙️ Pstore, The Linux Kernel Persistent Storage File System - статья о pstore, механизме, который позволяет сохранить информацию о падении в области памяти и не потерять её вместе с перезагрузкой сервера. #pstore #kernel #напочитать
Oracle
Pstore, The Linux Kernel Persistent Storage File System
Linux kernel pstore, the Linux kernel persistent storage file system explained.
Forwarded from Записки админа
🐧 Understanding a Kernel Oops! Старая статья, но как оказалась полезная даже сегодня. Ёмко и информативно о том, какую полезную информацию можно получить из дампа после kernel panic. Речь пойдёт конкретно об Oops (soft panic). #linux #kernel #напочитать
Open Source For You
Understanding a Kernel Oops! - Open Source For You
This article explains the workings of a Linux kernel Oops, helps to create a simple version, and then debug it. It is mainly intended for beginners.
Forwarded from Записки админа
Forwarded from Записки админа
document.pdf
4.9 MB
🐧 Linux Kernel Crash Book Everything you need to know. Подробно о проекте LKCD, входящих в него инструментах и практике работы с ядерными проблемами.
Подрезал где-то в LinkedIn, но книга также доступна здесь.
#kernel #книга #crash
Подрезал где-то в LinkedIn, но книга также доступна здесь.
#kernel #книга #crash
Forwarded from Записки админа
🔧 Инженеры Oracle про аварийные дампы ядра, размер vmcore и инструменты для работы со всем этим - A vmcore for your system may be smaller than you think!
#kernel #vmcore #напочитать
#kernel #vmcore #напочитать
Forwarded from Записки админа
🔨 What's Inside a Linux Kernel Core Dump - Инженеры Oracle продолжают раскрывать эту тему дампов ядра. Сама статья объёмная, плюс даёт несколько дополнительных ссылок для ознакомления.
#kernel #dump #напочитать
#kernel #dump #напочитать
Forwarded from Записки админа
📺 И вот ещё один плейлист, на этот раз конференции Kernel Recipes 2024. Доступны 20 докладов на различные околоядерные темы...
https://youtube.com/playlist?list=PLQ8PmP_dnN7L11sHfHc3CF9__SCV_vL2T
#видео #kernel
https://youtube.com/playlist?list=PLQ8PmP_dnN7L11sHfHc3CF9__SCV_vL2T
#видео #kernel
❤1
Forwarded from about:performance
photo_2025-01-20_08-36-01.jpg
60.5 KB
Ранее я писал о баге Haproxy: после рестарта треды не завершались, что приводило к их накоплению, память иссякала и приходил OOM Killer.
Проблему решали костылем — директива hard-stop-after принудительно завершает треды после рестарта.
Но Haproxy не сдается и наносит ответный удар!
Симптомы схожи: утечка памяти.
Но сбой наступает когда (это гипотеза) заканчивается память для TCP-буферов (
На скрине такой период отмечен красным прямоугольником.
Где
Оказалось, что система насыщается "повисшими" соединениями, чьи буферы сокетов содержат данные:
где:
*
*
А раз есть не прочитанные данные, значит таймер TCP keepalive не взводится:
Был бы повод, а костыль найдется!
Ребята из CloudFlare писали в свое время статью When TCP sockets refuse to die, где в виде решения предлагалось использовать опцию сокета
В свою очередь Haproxy поддерживает ее через tcp-ut.
Посмотрим, как себя покажет.
tags: #tcp #linux #kernel #troubleshooting
Проблему решали костылем — директива hard-stop-after принудительно завершает треды после рестарта.
Но Haproxy не сдается и наносит ответный удар!
Причины еще предстоит выяснить, поэтому это скорее "заметка с полей"
Симптомы схожи: утечка памяти.
Но сбой наступает когда (это гипотеза) заканчивается память для TCP-буферов (
net.ipv4.tcp_mem) - ядро с переменным успехом пытается освободить память для новых / существующих соединений, что приводит к затруднению в сетевых взаимодействиях.На скрине такой период отмечен красным прямоугольником.
# sysctl net.ipv4.tcp_mem
net.ipv4.tcp_mem = 90435 120582 180870
Где
180870 - максимальное значение (в страницах памяти) под все TCP сокеты в системе, что равно ~ 706MB. Оказалось, что система насыщается "повисшими" соединениями, чьи буферы сокетов содержат данные:
# ss -ntOai | awk '{for(i=1;i<=NF;i++)if($i~/^lastsnd:/){split($i,a,":");print a[2], $2, $4, $5}}' | sort -n | tail
#lastsnd # Recv-Q #Src #Dst
234423668 157355 10.11.12.4:57354 10.11.6.123:80
235316436 302417 10.11.12.4:56232 10.11.6.124:80
238200680 301585 10.11.12.4:37940 10.11.6.124:80
238726828 300103 10.11.12.4:58944 10.11.6.124:80
243816724 297015 10.11.12.4:51700 10.11.6.125:80
251456440 302959 10.11.12.4:52324 10.11.6.125:80
252237780 302464 10.11.12.4:47786 10.11.6.123:80
257868244 163453 10.11.12.4:41568 10.11.6.125:80
259905196 300433 10.11.12.4:40202 10.11.6.123:80
261307944 214022 10.11.12.4:54888 10.11.6.123:80 # это ~ 72 часа
где:
*
lastsnd - время с последней отправки данных, в милисекундах;*
Recv-Q - объем не прочитанных данных, в байтах.А раз есть не прочитанные данные, значит таймер TCP keepalive не взводится:
static void tcp_keepalive_timer (struct timer_list *t)
{
...
/* It is alive without keepalive 8) */
if (tp->packets_out || !tcp_write_queue_empty(sk))
goto resched;
...
resched:
inet_csk_reset_keepalive_timer (sk, elapsed);
goto out;
...
out:
bh_unlock_sock(sk);
sock_put(sk);
}
Был бы повод, а костыль найдется!
Ребята из CloudFlare писали в свое время статью When TCP sockets refuse to die, где в виде решения предлагалось использовать опцию сокета
TCP_USER_TIMEOUT:...it specifies the maximum amount of time in milliseconds that transmitted data may remain unacknowledged, or buffered data may remain untransmitted (due to zero window size) before TCP will forcibly close the corresponding connection and return **ETIMEDOUT** to the application...
В свою очередь Haproxy поддерживает ее через tcp-ut.
Посмотрим, как себя покажет.
tags: #tcp #linux #kernel #troubleshooting
👍2
Forwarded from Записки админа
🐧 Demystifying the Kernel Boot Sequence: From ‘Starting Kernel…’ to Userspace” - описание процесса загрузки ядра. Автор приводит в качестве примера 32 битный ARM процессор, но и общие шаги в статье также описывает...
https://bootlin.com/blog/demystifying-kernel-boot-sequence
#kernel #boot #напочитать
https://bootlin.com/blog/demystifying-kernel-boot-sequence
#kernel #boot #напочитать