시스템 단위 파일에서 Unix 도메인 데이터그램 소켓의 버퍼 크기 늘리기

시스템 단위 파일에서 Unix 도메인 데이터그램 소켓의 버퍼 크기 늘리기

단방향 데몬 통신을 위해 Unix 도메인 데이터그램 소켓을 사용하고 있습니다. 특정 최고 계산에서는 write()읽기 프로세스에서 단일 데이터그램을 계산하는 데 더 많은 시간이 필요하기 때문에 소켓에 ​​쓰는 프로세스가 차단될 수 있습니다 . 쓰기 프로세스는 정기적으로 데이터를 생성하므로 문제를 해결하는 가장 깔끔한 방법은 소켓의 버퍼링 용량을 늘리는 것입니다. 소켓은 다음 시스템 단위 파일을 기반으로 생성됩니다.

[Unit]
Description= Some Internal Socket

[Socket]
ListenDatagram=/run/foo/foo.sk
#ReceiveBuffer=10M
#SendBuffer=10M
#PipeSize=10M
#MessageQueueMaxMessages=1024
#MessageQueueMessageSize=1024

나는 systemd.socket에 대한 사람을 살펴보고 유망해 보이는 몇 가지 옵션(주석 처리)을 발견했습니다. 나는 이들의 다양한 조합을 시도했지만 불행히도 아무것도 작동하지 않습니다. 디스크의 유닛 파일을 변경한 후에는 항상 시스템(운영 체제)을 재부팅하여 적용된 변경 사항이 적용되는지 확인합니다. 매번 블록 앞에 동일한 수의 데이터그램을 쓸 수 있습니다. 아마도 데이터그램 길이가 몇 바이트씩 달라질 수 있기 때문일 것입니다. 예를 들어 때로는 508개의 데이터그램을 쓸 수도 있고 때로는 483개의 데이터그램을 쓸 수도 있습니다.

올바른 접근 방식이 무엇인지 아는 사람이 있습니까?

관련 정보