แแฆแแก, แแ แกแแแแแก แแแ (แกแแแฃแแ แแแแก) แแแแแฌแงแแแขแแแแแแแ IP(TS) แแแแแแแแแก แแแแแขแแ แแแแแกแแแแก, แแแแแแแแแ
แซแแแแแ แแแแแแ TSDuck-แแก แจแแกแแฎแแ
TSduck แแ แแก แฆแแ แแแแแก (2-แแฃแแฅแขแแแแ BSD แแแชแแแแแ) แแ แแแ แแแฃแแ แฃแแ แฃแแแแแงแแคแ (แแแแกแแแแก แแแแฃแแแแฃแ แ แกแแจแฃแแแแแแแแก แแแแ แแแ แแ แแแแแแแแแแ แแแ แกแแแแแฃแ แ แแแแฃแแแแฃแ แ แกแแจแฃแแแแแแแแก แแ แแแแแแแขแแแแก แจแแกแแฅแแแแแแ) TS แแแแแแแแแก แแแแแแฃแแแ แแแแกแแแแก. แ แแแแ แช แจแแงแแแแ, แแแก แจแแฃแซแแแ แแแฃแจแแแก IP (multicast/unicast), http, hls, dvb แขแแฃแแแ แแแแ, dektec dvb-asi แแแแแแฃแแแขแแ แแ, แแ แแก แจแแแ TS แแแแแแแก แแแแแ แแขแแ แ แแ แคแแแแแแแแแ แแแแฎแแ. แแแแแแแแแแ แจแแแซแแแแ แแงแแก แฉแแฌแแ แ แคแแแแแ, IP (multicast/unicast), hls, dektec dvb-asi แแ HiDes แแแแฃแแแขแแ แแแ, แแแแแแแจแแแแ (mplayer, vlc, xine) แแ แฉแแแแแแแแก. แกแฎแแแแแกแฎแแ แขแ แแคแแแแก แแ แแชแแกแแ แแแ แจแแแซแแแแ แฉแแ แแฃแแ แแงแแก แจแแงแแแแแกแ แแ แแแแแแแแแแก แจแแ แแก, แแแแแแแแแ, PID แฎแแแแฎแแแ แ แฃแฅแ, แแแแแ แแแ/แแแจแแ, CC แแ แแชแฎแแแแแก แแแแแแแ, แแแขแแก แกแแฉแฅแแ แแก แแแแแแแ แแจแแแ แแ แกแฎแแ แขแแแแฃแ แ แแแแ แแชแแแแ TS แแแแแแแแแกแแแแก.
แแ แกแขแแขแแแจแ แแแแแงแแแแแฃแแ แแฅแแแแ IP แแแแแแแแ (multicast) แ แแแแ แช แจแแงแแแแ, แแ แแชแแกแแ แแแ bitrate_monitor (แกแแฎแแแแแแ แแ แแแแแ แ แ แแ แแก) แแ แฃแฌแงแแแขแแแ (CC แแ แแชแฎแแแแแแแก แแแแแแแ). แแฅแแแ แจแแแแซแแแแ แแแ แขแแแแ แจแแชแแแแแ IP multicast แกแฎแแ แจแแงแแแแแก แขแแแแ, แ แแแแแกแแช แแฎแแ แก แฃแญแแ แก TSDuck.
แฎแแแแแกแแฌแแแแแแ
แจแแแแแแ, แแแ แกแแ TSDuck 3.19-1520 แแแแแแงแแแแแ, Linux แแแแแแงแแแแแ แ แแแแ แช OS (debian 10 แแแแแแงแแแแแแแ แแแแแฌแงแแแขแแก แแแกแแแแแแแแแแ, CentOS 7 แแแแแแงแแแแแแแ แ แแแแฃแ แ แแแแแงแแแแแแกแแแแก)
TSDuck-แแกแ แแ OS-แแก แแแแแแแแแ
แ แแแแฃแ แ แแแแแแแแแก แแแแแขแแ แแแแแแแ, แแฅแแแ แฃแแแ แแแ แฌแแฃแแแแ, แ แแ TSDuck แแฃแจแแแแก แกแฌแแ แแ แแ แแ แแ แแก แแแ แแแ แฅแกแแแแก แแแ แแแแก แแ OS (แกแแแแขแแก) แแแแแแ. แแก แกแแญแแ แแ แแแแกแแแแแก, แ แแ แแแแแแแแแแแ แแ แแแแแแชแแแ แกแแ แแแฎแแ แแแ แแแ - แฅแกแแแจแ แแ "แกแแ แแแ แแก แจแแแแแ". แแฅแแแ แจแแแแซแแแแ แจแแแแแฌแแแ แแแ แแแ แฅแกแแแแก แแแ แแแแก แแแแแแ ethtool -S ethX แแ แซแแแแแแ, แขแแฃแแแแแ แแแแแแแ แแแแแ ethtool-แแ (แฉแแแฃแแแแ แแ, แกแแญแแ แแ RX แแฃแคแแ แแก แแแแ แแ (-G) แแ แแแแฏแแ แแแแแ แแแ แแแแแแ แแ แแแแแแขแแแ แแแ (-K)). แ แแแแ แช แแแแแแ แ แแแแแแแแแชแแ, แจแแแซแแแแ แแแ แฉแแแ แชแแแแ แแแ แขแแก แแแแแงแแแแแ แแแแแแแแแแแฃแแ แขแ แแคแแแแก แแแกแแฆแแแแ, แแฃ แแก แจแแกแแซแแแแแแแ, แแก แแแชแแ แแแก แชแ แฃ แแแแแขแแแแแก, แ แแแแแแแช แแแแแแจแแ แแแฃแแแ แแ แคแแฅแขแแแ, แ แแ แแแ แแแ แแแฎแแ แแฃแกแขแแ แแแแแแแแขแแ แแก แแแ แขแแ แกแฎแแ แขแ แแคแแแแก แแ แกแแแแแแก แแแแ. แแฃ แแก แจแแฃแซแแแแแแแ (แแแแแแงแแแแแ แแแแ แแแแแแฃแขแแ แ/NUC แแ แแ แแแ แขแแ), แแแจแแ แซแแแแแ แกแแกแฃแ แแแแแ แแแแแแแแแแแฃแแ แขแ แแคแแแแก แแ แแแ แแขแแขแแแแก แแแงแแแแแ แแแแแ แฉแแแแแ แแแแแ แแแแแจแ แแแฌแงแแแแแแแแแ, แ แแแแแกแแช แฃแแแแจแแ แแแแ แแแแแแแแขแแ แ. แ แแช แจแแแฎแแแ แแแ แขแฃแแแฃแ แแแ แแแแก, แแฅ แแฅแแแ แฃแแแ แแงแแ แคแ แแฎแแแแ แแ แจแแแแซแแแ แแแแแแ แแแแแขแแก แฌแแแแแแ, แแแฌแงแแแฃแแ แคแแแแแฃแ แ แแแ แขแแแแ แแ แแแแแแแ แแแฃแแ แแแแแแแชแแแ แแแ แขแฃแแแฃแ แ แแแแฅแแแแก แจแแแแแ.
แแแแแแแก แแแแแ แแชแแ แแ แแแฆแแแ แแแกแแแแซแแแก แจแแแแแ
แ แแแแ แช TSDuck-แแก แแแแแแแแแแก แแแ แแแแ แแแแแฏแ, แฉแแแ แแแแแแฅแแแแ แแ แแแแแฆแแแ แขแ แแคแแแก แแ แ แฐแแกแขแจแ แฅแกแแแแแแก แแแแแงแแแแแแ.
แแแ แแแแก แแแแแแแแแ:
ip netns add P #ัะพะทะดะฐัะผ netns P, ะฒ ะฝัะผ ะฑัะดะตั ะฟัะพะธัั
ะพะดะธัั ะฐะฝะฐะปะธะท ััะฐัะธะบะฐ
ip link add type veth #ัะพะทะดะฐัะผ veth-ะฟะฐัั - veth0 ะพััะฐะฒะปัะตะผ ะฒ netns ะฟะพ ัะผะพะปัะฐะฝะธั (ะฒ ััะพั ะธะฝัะตััะตะนั ะฑัะดะตั ะณะตะฝะตัะธัะพะฒะฐัััั ััะฐัะธะบ)
ip link set dev veth1 netns P #veth1 - ะฟะพะผะตัะฐะตะผ ะฒ netns P (ะฝะฐ ััะพะผ ะธะฝัะตััะตะนัะต ะฑัะดะตั ะฟัะธัะผ ััะฐัะธะบะฐ)
ip netns exec P ifconfig veth1 192.0.2.1/30 up #ะฟะพะดะฝะธะผะฐะตะผ IP ะฝะฐ veth1, ะฝะต ะธะผะตะตั ะทะฝะฐัะตะฝะธั ะบะฐะบะพะน ะธะผะตะฝะฝะพ
ip netns exec P ip ro add default via 192.0.2.2 #ะฝะฐัััะฐะธะฒะฐะตะผ ะผะฐััััั ะฟะพ ัะผะพะปัะฐะฝะธั ะฒะฝัััะธ nents P
sysctl net.ipv6.conf.veth0.disable_ipv6=1 #ะพัะบะปััะฐะตะผ IPv6 ะฝะฐ veth0 - ััะพ ะดะตะปะฐะตััั ะดะปั ัะพะณะพ, ััะพะฑั ะฒ ัััััะธะบ TX ะฝะต ะฟะพะฟะฐะดะฐะป ะฟะพััะพัะพะฝะฝะธะน ะผััะพั
ifconfig veth0 up #ะฟะพะดะฝะธะผะฐะตะผ ะธะฝัะตััะตะนั veth0
ip route add 239.0.0.1 dev veth0 #ัะพะทะดะฐัะผ ะผะฐััััั, ััะพะฑั ะะก ะฝะฐะฟัะฐะฒะปัะปะฐ ััะฐัะธะบ ะบ 239.0.0.1 ะฒ ััะพัะพะฝั veth0
แแแ แแแ แแแแแแ. แฉแแแ แแแฌแงแแแ แขแ แแคแแแแก แแแแแแแแขแแ แก:
ip netns exec P tsp --realtime -t
-I ip 239.0.0.1:1234
-P continuity
-P bitrate_monitor -p 1 -t 1
-O drop
แกแแแแช "-p 1 -t 1" แแแจแแแแก, แ แแ แแฅแแแ แฃแแแ แแแแแแแแแแ แแแขแฃแ แ แกแแฎแจแแ แ แงแแแแ แฌแแแจแ แแ แแฉแแแแแ แแแคแแ แแแชแแ แแแขแแก แกแแฉแฅแแ แแก แจแแกแแฎแแ แงแแแแ แฌแแแจแ
แฉแแแ แแแฌแงแแแ แขแ แแคแแแแก แแแแแ แแขแแ แก 10 Mbps แกแแฉแฅแแ แแ:
tsp -I craft
-P regulate -b 10000000
-O ip -p 7 -e --local-port 6000 239.0.0.1:1234
แกแแแแช "-p 7 -e" แแแจแแแแก, แ แแ แแฅแแแ แฃแแแ แฉแแแแแแแ 7 TS แแแแแขแ 1 IP แแแแแขแจแ แแ แแแแแแแแ แแก แ แแฃแแ (-e), แ.แ. แงแแแแแแแแก แแแแแแแแ 7 TS แแแแแขแก แแแแ แแ แแชแแกแแ แแแแ IP แแแแแขแแก แแแแแแแแแแแ.
แแแแแแแแขแแ แ แแฌแงแแแก แแแกแแแแแแแแ แจแแขแงแแแแแแแแแแก แแแแแขแแแแก:
* 2020/01/03 14:55:44 - bitrate_monitor: 2020/01/03 14:55:44, TS bitrate: 9,970,016 bits/s
* 2020/01/03 14:55:45 - bitrate_monitor: 2020/01/03 14:55:45, TS bitrate: 10,022,656 bits/s
* 2020/01/03 14:55:46 - bitrate_monitor: 2020/01/03 14:55:46, TS bitrate: 9,980,544 bits/s
แแฎแแ แแแแแแขแแ แ แแแแแแแแ แฌแแแแ:
ip netns exec P iptables -I INPUT -d 239.0.0.1 -m statistic --mode random --probability 0.001 -j DROP
แแ แแแแแฉแแแแแ แแกแแแ แจแแขแงแแแแแแแแแ:
* 2020/01/03 14:57:11 - continuity: packet index: 80,745, PID: 0x0000, missing 7 packets
* 2020/01/03 14:57:11 - continuity: packet index: 83,342, PID: 0x0000, missing 7 packets
แ แแแแแแช แแแกแแแแแแแแแ. แแแแแ แแแ แแแแแขแแก แแแแแ แแแ (ip netns exec P iptables -F) แแ แจแแแชแแแแ แแแแแ แแแ แแแแแ แแขแแ แแก แแแขแแก แกแแฉแฅแแ แ 100 Mbps-แแแ. แแแแแแแแขแแ แ แแชแแแแแแก CC แจแแชแแแแแแก แแ แแแแฎแแแแแแ 75 Mbps 100-แแก แแแชแแแแ. แฉแแแ แแชแแแแแแ แแแแแ แแแแแ แแแ แแ แแก แแแแแแจแแแ - แแแแแ แแขแแ แก แแ แ แแ แแฅแแก แแ แแ แแแแแแ แแแกแจแ แแ แแ แแก, แแแแกแแแแแก แแแฌแงแแแ แคแแฅแกแแ แแแฃแแ แ แแแแแแแแแก แแแแแ แแ แแแแก. แแแแแขแแแ (700000 TS แแแแแขแ = 100000 IP แแแแแขแ):
# ifconfig veth0 | grep TX
TX packets 151825460 bytes 205725459268 (191.5 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
# tsp -I craft -c 700000 -P regulate -b 100000000 -P count -O ip -p 7 -e --local-port 6000 239.0.0.1:1234
* count: PID 0 (0x0000): 700,000 packets
# ifconfig veth0 | grep TX
TX packets 151925460 bytes 205861259268 (191.7 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
แ แแแแ แช แฎแแแแแ, แจแแแฅแแแ แแฃแกแขแแ 100000 IP แแแแแขแ (151925460-151825460). แแแแแ แแแแแ แแแแแ แ แ แฎแแแแ แแแแแแแแขแแ แแแ, แแแแกแแแแแก แฉแแแ แแแแแฌแแแแ RX แแ แแชแฎแแแแก veth1-แแ, แแก แแแแชแ แแ แฃแแ แแก TX แแ แแชแฎแแแแก veth0-แแ, แจแแแแแ แแฃแงแฃแ แแแ แ แ แฎแแแแ แกแแแแขแแก แแแแแแ:
# ip netns exec P cat /proc/net/udp
sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode ref pointer drops
133: 010000EF:04D2 00000000:0000 07 00000000:00000000 00:00000000 00000000 0 0 72338 2 00000000e0a441df 24355
แแฅ แจแแแแซแแแแ แแฎแแแแ แฌแแแแแแแก แ แแแแแแแแ = 24355. TS แแแแแขแแแจแ แแก แแ แแก 170485 แแ 24.36% 700000-แแแ, แแกแ แ แแ, แฉแแแ แแฎแแแแแ, แ แแ แแแแแ แแฃแแ แแแขแแแแก แแแแแ 25% แแ แแก แฌแแแแแแ udp แกแแแแขแจแ. UDP แกแแแแขแจแ แแแ แแแ แฉแแแฃแแแแ แแ แฎแแแแ แแฃแคแแ แแก แแแแแแแแแแก แแแแ, แจแแฎแแแแ แแแแฃแแแกแฎแแแแ แแฃแคแแ แแก แแแแแก แแ แกแแแแขแแก แแฃแคแแ แแก แแแฅแกแแแแแฃแ แแแแแก:
# sysctl net.core.rmem_default
net.core.rmem_default = 212992
# sysctl net.core.rmem_max
net.core.rmem_max = 212992
แแแ แแแแ, แแฃ แแแแแแแชแแแแ แแแ แแแแแ แแ แแแฎแแแแ แแฃแคแแ แแก แแแแแก, แกแแแแขแแแ แแฅแแแแแ 208 KB แแฃแคแแ แแ, แแแแ แแ แแฃ แแกแแแ แแแแแฎแแแแ แแแขแก, แแกแแแ แแแแแช แแแ แแแแฆแแแแ แแแแก, แ แแช แแแแแฎแแแแก. แแแแก แแแแ, แ แแ แแฅแแแ แจแแแแซแแแแ แแแแงแแแแ แแฃแคแแ แแก แแแแ tsp-แจแ IP แจแแงแแแแแกแแแแก (-buffer-size), แฉแแแ แแ แจแแแแฎแแแแ แแแแฃแแแกแฎแแแ แกแแแแขแแก แแแแแก, แแแแ แแ แแฎแแแแ แแแแแงแแแแแ แกแแแแขแแก แแฃแคแแ แแก แแแฅแกแแแแแฃแ แแแแแก แแ แชแแแกแแฎแแ แแแฃแแแแแแ แแฃแคแแ แแก แแแแแก tsp แแ แแฃแแแแขแแแแก แแแจแแแแแแ:
sysctl net.core.rmem_max=8388608
ip netns exec P tsp --realtime -t -I ip 239.0.0.1:1234 -b 8388608 -P continuity -P bitrate_monitor -p 1 -t 1 -O drop
แกแแแแขแแก แแฃแคแแ แแก แแ แ แแแฃแแแ แแแแ, แแฎแแ แแแฎแกแแแแแฃแแ แแแขแ แแแขแ แแ แแก แแแแฎแแแแแแ 100 Mbps, แแ แแ แแก CC แจแแชแแแแแแ.
แแแแแ tsp แแแแแแแชแแแก CPU แแแฎแแแ แแแแก แแแฎแแแแแ. แแ แแ แแแ แแแแ i5-4260U CPU @ 1.40GHz-แแแ แจแแแแ แแแแ, 10Mbps แแแแแแแก แแแแแแแก แแแกแญแแ แแแแ 3-4% CPU, 100Mbps - 25%, 200Mbps - 46%. % Packet Loss-แแก แแแงแแแแแแกแแก, CPU-แแ แแแขแแแ แแแ แแ แแฅแขแแแฃแแแ แแ แแแ แแแแ (แแแแ แแ แจแแแซแแแแ แจแแแชแแ แแแก).
แฃแคแ แ แแ แแแฃแฅแขแแฃแ แแแแ แแขแฃแ แแแ, แฃแแ แแแแแแแ แแงแ แจแแกแแซแแแแแแ 1 แแ/แฌแ-แแ แแแขแ แแแแแแแแแก แแแแแ แแ แแแ แแ แแแแแแแ.
แขแแกแขแแ แแแ แ แแแแฃแ แฅแกแแแแก แแแ แแแแแแ
Veth แฌแงแแแแแ แขแแกแขแแ แแแแก แจแแแแแ, แแฅแแแ แฃแแแ แแแฆแแ แแ แ แฐแแกแขแ แแ แแ แแ แฐแแกแขแแก แแ แ แแแ แขแ, แแแแแแแจแแ แแ แแแ แขแแแ แแ แแแแแแแแแ, แฉแแ แแแ แแแแแ แแขแแ แ แแ แแแ, แฎแแแ แแแแแแแแขแแ แ แแแแ แแแ. แแฅ แกแแฃแ แแ แแแแแ แแ แงแแคแแแ, แแแแ แแ แกแแแแแแแแแแจแ แงแแแแแคแแ แ แ แแแแแแแ แแแแแแแแแแฃแแ, แ แแช แฃแคแ แ แกแฃแกแขแ แแฅแแแแ, แแแ แฃแคแ แ แกแแแแขแแ แแกแ แแฅแแแแ แแฅ.
แแแแแขแแ แแแแแก แกแแกแขแแแแก แแแแ แแแฆแแแฃแแ แแแแแชแแแแแแก แแแแแงแแแแแ (Zabbix)
tsp-แก แแ แแฅแแก แแแแฅแแแแ แฌแแแแแฎแแแแ API, แ แแแแ แแชแแ SNMP แแ แแกแแแแกแ. CC แจแแขแงแแแแแแแแแ แฃแแแ แแงแแก แแแ แแแแ แแแฃแแ แแแแแแฃแ 1 แฌแแแแก แแแแแแแแแแแจแ (แแแแแขแแแแก แแแแแ แแแแก แแแฆแแแ แแ แแชแแแขแแ, แจแแแซแแแแ แแงแแก แแกแแแแ/แแแแกแแแแ/แแแแแแแกแแแแ แฌแแแจแ, แแแขแแก แกแแฉแฅแแ แแก แแแฎแแแแแ).
แแแ แแแแ, แแแคแแ แแแชแแแก แจแแกแแแแฎแแ แแ CC แจแแชแแแแแแแก แแ แแแขแฃแ แ แกแแฉแฅแแ แแก แแ แแคแแแแแแก แแแกแแฎแแขแแ แแ แ แแแแ แกแแฎแแก แฃแแแแฃแ แ แจแแแแฎแแแแแกแแแแก, แจแแแซแแแแ แแ แกแแแแแแแก แจแแแแแแ แแแ แแแแขแแแ:
- แฉ/แ-แแก แแแแแแแแแแ แแแแแแแแแแแ แแ แแแ แแแแชแแ (CC-แแ), แ.แ. แแแแแแงแแแแแ แแแ แกแแกแฃแ แแแ แคแแ แแแจแ.
- แแแแกแ แฃแแแ แก/แ แแแแแ แแ/แแ แแ แแชแแกแแ แแก แแแแแแแขแแแ bitrate_monitor แแ แฃแฌแงแแแขแแแ แแกแ, แ แแ แจแแแแแ แแแงแแแแแแ แแงแแก แแแแฅแแแแ แฌแแแแแฎแแแแ แคแแ แแแ, แ แแแแแแช แจแแกแแคแแ แแกแแ แแแแแขแแ แแแแแก แกแแกแขแแแแกแแแแก.
- แแแฌแแ แแ แแฅแแแแ แแแแแชแฎแแแ tsduck แแแแแแแแแแแก แแแแแ.
แชแฎแแแแ, แแแ แแแแขแ 1 แงแแแแแแ แแแ แขแแแแ แซแแแแกแฎแแแแแก แแแแแกแแแ แแกแแ, แแแแกแแแฃแแ แแแแ แแแแก แแแแแแแแกแฌแแแแแแ, แ แแ แแแแแ tsduck แแฌแแ แแแ แแแแแแ แแแแแก (แแแแแแแแ แแแ แกแขแแแแแ แขแแแแ) แแแแแ (C ++)
แแแ แขแแแ bash parser+agregator แแ แแขแแขแแแแ แแฉแแแแ, แ แแ 10Mbps แแแแแแแ แแ 50% แแแแแขแแก แแแแแ แแแแแ (แงแแแแแแ แฃแแ แแกแ แจแแแแฎแแแแแจแ), bash แแ แแชแแกแ แแแแฎแแแ แแ 3-4-แฏแแ แแแข CPU-แก, แแแแ แ แแแแแ tsp แแ แแชแแกแ. แแก แกแชแแแแ แ แแแฃแฆแแแแแแ. แ แแแแฃแ แแ แแ แแ แแขแแขแแแแก แแแฌแแแ แฅแแแแแ
แแแแแแแ แแฃแแแแแ
#!/usr/bin/env bash
missingPackets=0
ccErrorSeconds=0
regexMissPackets='^* (.+) - continuity:.*missing ([0-9]+) packets$'
missingPacketsTime=""
ip netns exec P tsp --realtime -t -I ip -b 8388608 "239.0.0.1:1234" -O drop -P bitrate_monitor -p 1 -t 1 -P continuity 2>&1 |
while read i
do
#line example:* 2019/12/28 23:41:14 - continuity: packet index: 6,078, PID: 0x0100, missing 5 packets
#line example 2: * 2019/12/28 23:55:11 - bitrate_monitor: 2019/12/28 23:55:11, TS bitrate: 4,272,864 bits/s
if [[ "$i" == *continuity:* ]]
then
if [[ "$i" =~ $regexMissPackets ]]
then
missingPacketsTimeNew="${BASH_REMATCH[1]}" #timestamp (seconds)
if [[ "$missingPacketsTime" != "$missingPacketsTimeNew" ]] #new second with CC error
then
((ccErrorSeconds += 1))
fi
missingPacketsTime=$missingPacketsTimeNew
packets=${BASH_REMATCH[2]} #TS missing packets
((missingPackets += packets))
fi
elif [[ "$i" == *bitrate_monitor:* ]]
then
: #...
fi
done
แแแ แแ แแแแกแ, แ แแ แแแฃแจแแแแแแ แแแแแ, bash-แจแ แแแ แแแแฃแ แ แซแแคแแแ แแ แแ แแก, bash แกแแแฃแจแแแแแ แชแแแแแฃแแ แแ แแชแแกแแแแ แแ แแแแ แแแ แแคแแฅแขแแ แฌแแแจแ แแ แแฎแแ แแแแแฌแแ missingPackets-แแก แแแแจแแแแแแแแก แแแฌแแ แ (แแแขแ แแขแแก แจแแขแงแแแแแแแแแแก แแแฆแแแแกแแก, แ แแแแแแแช แงแแแแ แฌแแแก แแแแแก). แจแแแแแแ, แแแจแ แแแ แขแ แแแ แฉแ แแ แแแแแฌแงแแ แแแแแแแจแ แจแแคแฃแแแ (แแแ แกแแ แ + แแแ แแแแขแแ แ). แแกแแแแกแ แแแแแแแแก แแแแแก CPU แแแฎแแแ แแแ 4-5-แฏแแ แแแแแแแแ, แแแแ แ แแแแแ แฉ/แ แแ แแชแแกแแ. แจแแคแฃแแแแก แกแแกแฌแ แแคแ แแแจแแก แแแแแแแแ แแแแแชแแแแก แแแแ แแแแฎแแแแแแ 16-แฏแแ แแฆแแแฉแแแ แแ แแแแแแแ แจแแแแแ แแแกแแฆแแแแ (CPU แแแแแแขแแ แฃแแ แแก แจแแแแฎแแแแแจแ 25%-แแ). แแแแแแแแก แฌแงแแ แแก แคแแแแ แแแแแแ แแแแก
แแแฃแจแแแ แจแแคแฃแแแ
แจแแคแฃแแแแก แแแกแแฌแงแแแแ, แแแแแแแ แกแแกแขแแแแก แฃแแแ แขแแแแกแ แกแแ แแแกแแก แจแแแแแแ (
แกแแ แแแกแแก แแแกแขแแแชแแแก แจแแกแแฅแแแแแแ, แแฅแแแ แฃแแแ แแแฃแจแแแ systemctl enable แแ แซแแแแแ [แแ.แคแแกแขแแ แแแชแฃแแแ]:1234 แจแแแแแ แแแฃแจแแแ systemctl start-แแ [แแ.แคแแกแขแแ แแแชแฃแแแ]: 1234.
แแฆแแแฉแแแ Zabbix-แแกแแแ
แแแแกแแแแแก, แ แแ zabbix-แแ แจแแซแแแก แแแจแแแแฃแแ แกแแ แแแกแแแแก แแฆแแแฉแแแ, แแก แแแแแแแ
Zabbix แจแแแแแแ
แแแแแ แฉแแแแแแแแแแ (แแแ แแ, แ แ แแแฎแแแแ, แแฃ แแแแแ แแแแแฌแงแแแขแก แแแก แแแแแงแแแแแแก)
- แแแ แฌแแฃแแแแ, แ แแ tsp แแ แฉแแแแแแแแแก แแแแแขแแแก "แแแแแแฃแ " แแแ แแแแแจแ (แแแแแ แแขแแ แ แแ แแแแแแแแขแแ แ แแแ แแแแแ แแ แแก แแแแแแจแแ แแแฃแแ), แแฃ แฌแแแแแแแ, แแฎแแแแ แแฃแแฅแขแ 2 แแ แกแขแแขแแแก แขแแฅแกแขแ แแ แกแแแแแฎแแแ แแแแแแจแแ แแแแ.
- แแแแแแแแ แแแฅแกแแแแแฃแ แ แกแแแแขแแก แแฃแคแแ แแก แแแ แแแฃแแแ แแแ (net.core.rmem_max=8388608).
- แจแแแแแแแแ tsduck-stat.go (แแแแแแแ tsduck-stat.go-แแก แแจแแแแแแแ).
- แแแแแแแแกแแ แกแแ แแแกแแก แจแแแแแแ /lib/systemd/system-แจแ.
- แแแแฌแงแแ แกแแ แแแกแแแ systemctl-แแ, แจแแแแแฌแแแ, แ แแ แแ แแชแฎแแแแแแ แแแแแฉแแแ (grep "" /dev/shm/tsduck-stat/*). แกแแ แแแกแแแแก แ แแแแแแแแ แแ แแแแแฏแแ แแแ แแแแแแแแแก แ แแแแแแแแแก แแแฎแแแแแ. แแฅ แจแแแซแแแแ แแแแญแแ แแแ แแแ แจแ แฃแขแแก แจแแฅแแแ multicast แฏแแฃแคแจแ, แจแแกแแซแแแ แแแแแ แแแ rp_filter แแ แจแแฅแแแแ แแแ แจแ แฃแขแ แฌแงแแ แแก IP-แแแ.
- แแแฃแจแแแ discovery.sh, แแแ แฌแแฃแแแแ, แ แแ แแก แฅแแแแก json-แก.
- แแแแแแขแแ zabbix แแแแแขแแก แแแแคแแแฃแ แแชแแ, แแแแแขแแแ แแแ zabbix แแแแแขแ.
- แแขแแแ แแแ แจแแแแแแ zabbix-แแ, แแแแแแงแแแแ แแก แฐแแกแขแแ, แ แแแแแก แแแแแขแแ แแแแแช แแแแแแแแ แแแแก แแ zabbix-แแแแแขแ แแแแแกแขแแแแ แแแฃแแแ, แแแแแแแแ แแแแฎแแแแแแ 5 แฌแฃแแ, แแแฎแแ แแ แแก แแฃ แแ แ แแฎแแแ แแแแแแแขแแแ, แแ แแคแแแแแ แแ แขแ แแแแ แแแ.
แจแแแแแ
แแแแแขแแก แแแแแ แแแแก แแแแแแแแแแก แแแแแแ, แแก แแแแฅแแแก แกแแแแแ แแกแแ, แงแแแแ แจแแแแฎแแแแแจแ, แฃแแแแแกแแ, แแแแ แ แแแแแขแแ แแแแแก แแแ แแจแ.
แแแ แแแแช, CC "แแแ แแแ" แจแแแซแแแแ แแแฎแแแก แแแแแ แคแ แแแแแแขแแแแก แจแแ แฌแงแแแกแแก (แ แแแแแแแแแช แแ แแแชแ, แแกแ แแแแแแแ แฉแแแแ แแแแ แ แฃแกแแแแก แคแแแแ แแชแแแก แแแแแแแแ แแ แกแแขแแแแแแแแ แชแแแขแ แแแจแ, แแแฃ CC แแ แแชแฎแแแแแก แแแแแแแแแ แแจแแแแก แแแ แแจแ), แแก แฃแแแ แแแฎแกแแแแแ. แกแแแฃแแ แแแแก แแแแแฌแงแแแขแแแแแแแ แแแฌแแแแแ แแ แแชแแแแแก แแ แแ แแแแแแแก SCTE-35 แแขแแแแขแแแแก แแฆแแแฉแแแแ (แแฃ แแแแแขแแแฃแแแ แแแแแแแก แแแแแ แแขแแ แแก แแแแ ).
แขแ แแแกแแแ แขแแก แฎแแ แแกแฎแแก แแแแแขแแ แแแแแก แแฃแแฎแแ, แแ แกแแแแแก แฏแแขแแ แแก แแแแแขแแ แแแแแก (IAT) แแแแแแแแแ. แกแแขแแแแแแแแ แแแฌแงแแแแแแแแก (แแฅแแแแ แแก แแแแฃแแแขแแ แแแ แแฃ แแแแ แแแฌแงแแแแแแแแแ) แแฅแแก แแแแฎแแแแแแ แแ แแแ แแแแขแ แแ แแ แงแแแแแแแแก แแ แแ แแก แจแแกแแซแแแแแแ แฏแแขแแฃแคแแ แแก แฃแกแแกแ แฃแแแแแแแ แแแแแ แแ. แแ แแแขแแ แ แจแแแซแแแแ แแชแฃแ แแก, แ แแแแกแแช แแแแ แแฃแคแแ แแแแก แแฅแแแ แแแฌแงแแแแแแแ แแแแแแงแแแแแ แขแ แแแแแขแจแ แแ QoS แแ แแ แแก แแแแคแแแฃแ แแ แแแฃแแ แแ แกแแแแแ แแกแแ แแ แแ แแก แแแแคแแแฃแ แแ แแแฃแแ แแกแแแ แ แแแแฃแ แแ แแจแ แขแ แแคแแแแก แแแแแกแแชแแแแ.
แฌแงแแ แ: www.habr.com