-
Bug
-
Resolution: Fixed
-
Major
-
None
-
None
-
None
-
GG7.0.2
Hi, when I look into low-can service, find low-can service creates so many file descriptors.
I guess low-can service open CAN socket for one signal (one low-can-subscription object) so if one message ID has 7 signal for example, it opens can device 7 times and hold discriptors. Then there are a lot of file descriptors.
Each low-can-subscription object looking events then checks the events is for the object.
Is this right ?
IMO, this affects performance.
In products, there are over 1000 messages. So, IMHO, it is necessary to refactor low-can service to look one file descriptor then distribute target event .
The below is the sample result with lsof command.
root# lsof -p 2431 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME afbd-agl- 2431 root cwd DIR 179,1 4096 23 /home/0/app-data/agl-service-can-low-level afbd-agl- 2431 root rtd DIR 179,1 4096 2 / afbd-agl- 2431 root txt REG 179,1 317400 11951 /usr/bin/afb-daemon afbd-agl- 2431 root mem REG 179,1 7113416 28451 /var/local/lib/afm/applications/agl-service-can-low-level/7.90/lib/afb-low-can.so afbd-agl- 2431 root mem REG 179,1 661992 780 /lib/libm-2.26.so afbd-agl- 2431 root mem REG 179,1 83784 729 /lib/libz.so.1.2.11 afbd-agl- 2431 root mem REG 179,1 79696 1180 /lib/libgcc_s.so.1 afbd-agl- 2431 root mem REG 179,1 1575296 4320 /usr/lib/libstdc++.so.6.0.24 afbd-agl- 2431 root mem REG 179,1 456640 4544 /usr/lib/libcynara-commons.so.0.14.10 afbd-agl- 2431 root mem REG 179,1 47032 4521 /usr/lib/libcynara-client-commons.so.0.14.10 afbd-agl- 2431 root mem REG 179,1 132936 10975 /usr/lib/liblzma.so.5.2.3 afbd-agl- 2431 root mem REG 179,1 22568 1272 /lib/libcap.so.2.25 afbd-agl- 2431 root mem REG 179,1 72224 761 /lib/libresolv-2.26.so afbd-agl- 2431 root mem REG 179,1 1304648 1280 /lib/libc-2.26.so afbd-agl- 2431 root mem REG 179,1 27352 1183 /lib/librt-2.26.so afbd-agl- 2431 root mem REG 179,1 10264 1271 /lib/libdl-2.26.so afbd-agl- 2431 root mem REG 179,1 124896 11139 /usr/lib/libmagic.so.1.0.0 afbd-agl- 2431 root mem REG 179,1 55272 11063 /usr/lib/libcynara-client.so.0.14.10 afbd-agl- 2431 root mem REG 179,1 1777712 3855 /usr/lib/libcrypto.so.1.0.2 afbd-agl- 2431 root mem REG 179,1 18312 1314 /lib/libuuid.so.1.3.0 afbd-agl- 2431 root mem REG 179,1 96072 4236 /usr/lib/libmicrohttpd.so.12.43.0 afbd-agl- 2431 root mem REG 179,1 529056 1308 /lib/libsystemd.so.0.19.0 afbd-agl- 2431 root mem REG 179,1 38680 5958 /usr/lib/libjson-c.so.2.0.2 afbd-agl- 2431 root mem REG 179,1 97712 1177 /lib/libpthread-2.26.so afbd-agl- 2431 root mem REG 179,1 124560 733 /lib/ld-2.26.so afbd-agl- 2431 root 0r CHR 1,3 0t0 1047 /dev/null afbd-agl- 2431 root 1u unix 0xffff80006adf9680 0t0 10164 type=STREAM afbd-agl- 2431 root 2u unix 0xffff80006adf9680 0t0 10164 type=STREAM afbd-agl- 2431 root 3u unix 0xffff80006acecd80 0t0 9503 /run/user/0/apis/ws/low-can type=STREAM afbd-agl- 2431 root 4u DIR 179,1 4096 28443 /var/local/lib/afm/applications/agl-service-can-low-level/7.90 afbd-agl- 2431 root 5u unix 0xffff80006adf5b00 0t0 10890 type=STREAM afbd-agl- 2431 root 6u a_inode 0,10 0 1044 [eventfd] afbd-agl- 2431 root 7u a_inode 0,10 0 1044 [eventpoll] afbd-agl- 2431 root 8u DIR 179,1 4096 10504 /usr/lib/afb/monitoring afbd-agl- 2431 root 9u DIR 179,1 4096 28443 /var/local/lib/afm/applications/agl-service-can-low-level/7.90 afbd-agl- 2431 root 10u a_inode 0,10 0 1044 [eventpoll] afbd-agl- 2431 root 11u IPv4 11295 0t0 TCP *:31017 (LISTEN) afbd-agl- 2431 root 12u unix 0xffff80006aed2880 0t0 11918 /run/user/0/apis/ws/low-can type=STREAM afbd-agl- 2431 root 13u unix 0xffff80006aed0d80 0t0 11931 /run/user/0/apis/ws/low-can type=STREAM afbd-agl- 2431 root 14u sock 0,8 0t0 11937 protocol: CAN_BCM afbd-agl- 2431 root 15u sock 0,8 0t0 11938 protocol: CAN_BCM afbd-agl- 2431 root 16u sock 0,8 0t0 11939 protocol: CAN_BCM afbd-agl- 2431 root 17u sock 0,8 0t0 11940 protocol: CAN_BCM afbd-agl- 2431 root 18u sock 0,8 0t0 11941 protocol: CAN_BCM afbd-agl- 2431 root 19u sock 0,8 0t0 11942 protocol: CAN_BCM afbd-agl- 2431 root 20u sock 0,8 0t0 11943 protocol: CAN_BCM afbd-agl- 2431 root 21u sock 0,8 0t0 11944 protocol: CAN_BCM afbd-agl- 2431 root 22u sock 0,8 0t0 11945 protocol: CAN_BCM afbd-agl- 2431 root 23u sock 0,8 0t0 11950 protocol: CAN_BCM afbd-agl- 2431 root 24u sock 0,8 0t0 11951 protocol: CAN_BCM afbd-agl- 2431 root 25u sock 0,8 0t0 11952 protocol: CAN_BCM afbd-agl- 2431 root 26u sock 0,8 0t0 11953 protocol: CAN_BCM afbd-agl- 2431 root 27u sock 0,8 0t0 11954 protocol: CAN_BCM afbd-agl- 2431 root 28u sock 0,8 0t0 11955 protocol: CAN_BCM afbd-agl- 2431 root 29u sock 0,8 0t0 11956 protocol: CAN_BCM afbd-agl- 2431 root 30u sock 0,8 0t0 11957 protocol: CAN_BCM afbd-agl- 2431 root 31u sock 0,8 0t0 11958 protocol: CAN_BCM afbd-agl- 2431 root 32u sock 0,8 0t0 11959 protocol: CAN_BCM afbd-agl- 2431 root 33u sock 0,8 0t0 11960 protocol: CAN_BCM afbd-agl- 2431 root 34u sock 0,8 0t0 11961 protocol: CAN_BCM afbd-agl- 2431 root 35u sock 0,8 0t0 11962 protocol: CAN_BCM afbd-agl- 2431 root 36u sock 0,8 0t0 11963 protocol: CAN_BCM afbd-agl- 2431 root 37u sock 0,8 0t0 11964 protocol: CAN_BCM afbd-agl- 2431 root 38u sock 0,8 0t0 11965 protocol: CAN_BCM afbd-agl- 2431 root 39u sock 0,8 0t0 11966 protocol: CAN_BCM afbd-agl- 2431 root 40u sock 0,8 0t0 11967 protocol: CAN_BCM afbd-agl- 2431 root 41u sock 0,8 0t0 11968 protocol: CAN_BCM afbd-agl- 2431 root 42u sock 0,8 0t0 11973 protocol: CAN_BCM afbd-agl- 2431 root 43u sock 0,8 0t0 11974 protocol: CAN_BCM afbd-agl- 2431 root 44u sock 0,8 0t0 11975 protocol: CAN_BCM afbd-agl- 2431 root 45u sock 0,8 0t0 11976 protocol: CAN_BCM afbd-agl- 2431 root 46u sock 0,8 0t0 11977 protocol: CAN_BCM afbd-agl- 2431 root 47u sock 0,8 0t0 11978 protocol: CAN_BCM afbd-agl- 2431 root 48u sock 0,8 0t0 11979 protocol: CAN_BCM afbd-agl- 2431 root 49u sock 0,8 0t0 11980 protocol: CAN_BCM afbd-agl- 2431 root 50u sock 0,8 0t0 11981 protocol: CAN_BCM afbd-agl- 2431 root 51u sock 0,8 0t0 11982 protocol: CAN_BCM afbd-agl- 2431 root 52u sock 0,8 0t0 11983 protocol: CAN_BCM afbd-agl- 2431 root 53u sock 0,8 0t0 11984 protocol: CAN_BCM afbd-agl- 2431 root 54u sock 0,8 0t0 11986 protocol: CAN_BCM afbd-agl- 2431 root 55u sock 0,8 0t0 11987 protocol: CAN_BCM afbd-agl- 2431 root 56u sock 0,8 0t0 11989 protocol: CAN_BCM afbd-agl- 2431 root 57u sock 0,8 0t0 11990 protocol: CAN_BCM afbd-agl- 2431 root 58u sock 0,8 0t0 11991 protocol: CAN_BCM afbd-agl- 2431 root 59u sock 0,8 0t0 11992 protocol: CAN_BCM afbd-agl- 2431 root 60u sock 0,8 0t0 11993 protocol: CAN_BCM afbd-agl- 2431 root 61u sock 0,8 0t0 11994 protocol: CAN_BCM afbd-agl- 2431 root 62u sock 0,8 0t0 11995 protocol: CAN_BCM