Подход быстрого уведомления пространства пользователя в Linux?
У нас есть два процесса Linux, взаимодействующих с доменным сокетом, цель производительности - 5 тыс. Запросов в секунду с размером запроса 4 тыс. Через соединение с одним доменным сокетом, чтобы уменьшить стоимость процессора, мы заменяем доменный сокет на io-ring(на основе разделяемой памяти), но критически важный шаг "уведомить" все еще реализуется сокетом домена, и кажется, что издержки все еще слишком велики.
PS: в настоящее время глубина io обычно составляет 2-4, что указывает на 1 000 iops для каждого "уведомления"
Семафор, pthread_condvars, блокировки на основе futex, eventfd, inotify, какой из них вы предпочитаете (или кого-либо еще), я очень беспокоюсь о производительности и накладных расходах. Спасибо!
1 ответ
Вы можете использовать сигналы Linux
Посмотрите на SIGALRM или вы можете использовать SIGUSR1