关于UNIX DOMAIN SOCKET和普通udp socket的对比
在TX1(4核A57 1.7GHz)的板卡上进行测试,每个包大小设置为1024,全速收发,UDS的速度在90Mbps左右,UDP在120Mbps左右(略有丢包)
CPU占用率,UDS比UDP低10%,但是实际上,如果码率相近时,CPU占用率是差不多的
 
下面是UDP的CPU占用:
top - 08:44:46 up  3:04,  5 users,  load average: 1.78, 1.70, 1.66
Threads: 195 total, 3 running, 192 sleeping, 0 stopped, 0 zombie
%Cpu(s): 15.4 us, 31.3 sy, 0.0 ni, 51.3 id, 0.0 wa, 0.0 hi, 2.1 si, 0.0 st
KiB Mem : 4078676 total, 3061964 free, 399460 used, 617252 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 3180808 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1397 root -88 0 487920 156364 2100 R 65.9 3.8 2:04.03 udp_send
1396 root -91 0 487920 156364 2100 R 56.3 3.8 1:48.16 udp_recv
1395 root rt 0 487920 156364 2100 S 38.7 3.8 1:15.88 data_out
1398 root -81 0 487920 156364 2100 S 29.8 3.8 0:58.27 data_in
915 nvidia 20 0 9020 3280 2568 S 0.7 0.1 1:25.59 top
7 root 20 0 0 0 0 S 0.3 0.0 0:43.18 rcu_preempt
146 root rt 0 0 0 0 S 0.3 0.0 0:26.44 cfinteractive
327 systemd+ 20 0 77312 1952 1740 S 0.3 0.0 0:06.22 sd-resolve
1393 root 20 0 487920 156364 2100 S 0.3 3.8 0:01.00 test_udp.out
1400 admin 20 0 8932 3304 2632 R 0.3 0.1 0:00.07 top
1 root 20 0 7044 5452 3524 S 0.0 0.1 0:02.68 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 2:52.41 ksoftirqd/0
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_sched
9 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh
10 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
11 root rt 0 0 0 0 S 0.0 0.0 0:00.22 watchdog/0

  

 这个是UDS的CPU占用率:

top - 08:45:22 up  3:05,  5 users,  load average: 1.64, 1.68, 1.65
Threads: 195 total, 1 running, 194 sleeping, 0 stopped, 0 zombie
%Cpu(s): 12.9 us, 28.2 sy, 0.0 ni, 58.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 4078676 total, 3061868 free, 399532 used, 617276 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 3180712 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1406 root -88 0 487916 156400 2136 S 53.5 3.8 0:05.85 udp_send
1405 root -91 0 487916 156400 2136 S 41.6 3.8 0:04.57 udp_recv
1407 root -81 0 487916 156400 2136 S 34.0 3.8 0:03.77 data_in
1404 root rt 0 487916 156400 2136 S 29.7 3.8 0:03.24 data_out
915 nvidia 20 0 9020 3280 2568 S 0.7 0.1 1:25.79 top
1402 root 20 0 487916 156400 2136 S 0.7 3.8 0:00.41 test.out
146 root rt 0 0 0 0 S 0.3 0.0 0:26.49 cfinteractive
1400 admin 20 0 8932 3304 2632 R 0.3 0.1 0:00.27 top
1403 root rt 0 487916 156400 2136 S 0.3 3.8 0:00.01 trace_tsk
1 root 20 0 7044 5452 3524 S 0.0 0.1 0:02.68 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 2:52.41 ksoftirqd/0
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
7 root 20 0 0 0 0 S 0.0 0.0 0:43.20 rcu_preempt
8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_sched
9 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh
10 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
11 root rt 0 0 0 0 S 0.0 0.0 0:00.22 watchdog/0
12 root rt 0 0 0 0 S 0.0 0.0 0:00.20 watchdog/1
13 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration/1
14 root 20 0 0 0 0 S 0.0 0.0 0:00.29 ksoftirqd/1
15 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kworker/1:0
16 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/1:0H
17 root rt 0 0 0 0 S 0.0 0.0 0:00.21 watchdog/2
18 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration/2
19 root 20 0 0 0 0 S 0.0 0.0 0:00.20 ksoftirqd/2
21 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/2:0H
22 root rt 0 0 0 0 S 0.0 0.0 0:00.22 watchdog/3
23 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration/3
24 root 20 0 0 0 0 S 0.0 0.0 0:00.31 ksoftirqd/3
26 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/3:0H

  

理论上UDS不经过协议栈,不用计算校验和,但是为什么实际UDP速度还要快一些,那么UDS存在的价值在哪?

UNIX DOMAIN SOCKET效率的更多相关文章

  1. Unix domain socket 简介

    Unix domain socket 又叫 IPC(inter-process communication 进程间通信) socket,用于实现同一主机上的进程间通信.socket 原本是为网络通讯设 ...

  2. 【转】PHP实现系统编程(四)--- 本地套接字(Unix Domain Socket)

    原文:http://blog.csdn.net/zhang197093/article/details/78143687?locationNum=6&fps=1 --------------- ...

  3. (unix domain socket)使用udp发送>=128K的消息会报ENOBUFS的错误

    一个困扰我两天的问题, Google和Baidu没有找到解决方法! 此文为记录这个问题,并给出原因和解决方法. 1.Unix domain socket简介 unix域协议并不是一个实际的协议族,而是 ...

  4. 问题解决:psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

    错误提示: psql: could not connect to server: No such file or directory Is the server running locally and ...

  5. ndk学习16: unix domain socket

    一.UNIX Domain Socket 概念: UNIX Domain Socket是在socket架构上发展起来的用于同一台主机的进程间通讯(IPC) 特点: 1. 它不需要经过网络协议栈,不需要 ...

  6. Unix Domain Socket 域套接字实现

    主要注意流程: STREAM SOCKET: Server :  socket() --->  bind() ---> listen()  ---> accept() Client: ...

  7. 由一个简单需求到Linux环境下的syslog、unix domain socket

    本文记录了因为一个简单的日志需求,继而对linux环境下syslog.rsyslog.unix domain socket的学习.本文关注使用层面,并不涉及rsyslog的实现原理,感兴趣的读者可以参 ...

  8. libpqxx接口的在linux下的使用,解决psql:connections on Unix domain socket "/tmp/.s.PGSQL.5432"错误

    在项目中使用postgresql数据库时要求在windows和linux双平台兼容.于是在windows下使用的接口在linux下爆出异常: psql:connections on Unix doma ...

  9. nginx、php-fpm默认配置与性能–TCP socket还是unix domain socket【转】

    原文地址:https://www.cnxct.com/default-configuration-and-performance-of-nginx-phpfpm-and-tcp-socket-or-u ...

随机推荐

  1. DataPipeline丨金融行业如何统一管理单个任务下所有API的同步情况

    目前,依靠"手工人力"的电子表格数据治理模式逐渐被"自动智能"的专业工具取代.数据管理员.业务分析师开始采用"平台工具"来梳理主数据.元数据 ...

  2. java.lang.UnsatisfiedLinkError:dlopen failed: “**/*/arm/*.so” has unexpected e_machine: 3

    转载请标明出处,维权必究:https://www.cnblogs.com/tangZH/p/10458448.html 今天在做APP的时候使用so库,可结果一加载so库的时候便发生了这个莫名其妙的错 ...

  3. windows手动去重 通配符

    在下载文件时,如果遇到重复文件,windows的默认做法时 文件名(数字) 这样的方式重命名的. 那么我们在排除重复文件时,可以使用  windows文件浏览器提供的查找功能,  用通配符   ~=& ...

  4. 使用CAS实现无锁列队-链表

    #include <stdlib.h> #include <stdio.h> #include <pthread.h> #include <iostream& ...

  5. composer PHP Fatal error致命错误

    可以尝试临时禁用composer插件: composer global remove fxp/composer-asset-plugin --no-plugins

  6. Python基础(解压序列)

    解压序列: a,b=(1,2) # a,b=[1,2] print(a,b) #输出结果:1 2 #获取第一个值和最后一个值 a,*_,c=(1,2,3,4,5,6,7,8,9) print(a) p ...

  7. qml demo分析(maroon-小游戏)

    1.效果展示 这篇文章我还是分析一个qt源码中的qml程序,程序运行效果如下图所示. 图1  游戏开始 图2  游戏中 2.源码分析 这个游戏的源码文件比较多,为了能更清楚的了解整个代码,我先整体分析 ...

  8. Devexpress常见问题

    1.DevExpress控件组中的GridControl控件不能使横向滚动条有效. 现象:控件中的好多列都挤在一起,列宽都变的很小,根本无法正常浏览控件单元格中的内容. 解决:gridView1.Op ...

  9. 【链表问题】打卡9:将单链表的每K个节点之间逆序

    前言 以专题的形式更新刷题贴,欢迎跟我一起学习刷题,相信我,你的坚持,绝对会有意想不到的收获.每道题会提供简单的解答,如果你有更优雅的做法,欢迎提供指点,谢谢. 注:如果代码排版出现了问题麻烦通知我下 ...

  10. Python:os 模块常用方法简介

    返回当前工作目录 os.getcwd() 返回 path 的绝对路径 os.path.abspath(path) os.path.abspath('.') 相当于 os.getcwd() 分割目录和文 ...