关于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. 总结微信公众平台网页开发中遇到的ios的兼容问题

    1. ios中音频不自动播放: 原因:出于节省流量的初衷,ios系统禁止音视频自动播放. 解决方案:使用微信的JS-SDK. DEMO: 先引入微信的JS-SDK, <script src=&q ...

  2. 一起学Android之Storage

    概述 在Android开发中,存储(Storage)的方式根据具体的需求不同而不同,例如数据对应用程序是私有的还是其他应用程序(和用户)可以访问的,以及保存数据需要多大的空间. 存储分类 主要的存储方 ...

  3. npm 模块化管理

    我们要使用 npm 进行包管理,首先我们得安装 npm,怎么安装?其实只要你安装了 node,那便相当于安装了 npm: node下载地址:http://nodejs.cn/download/ 由于 ...

  4. July 09th, 2018. Monday, Week 28th.

    Happiness is an inside job. 自内寻找,才能找到幸福. From William Arthur Ward. Nobody wants to suffer, and we al ...

  5. python爬虫数据解析之xpath

    xpath是一门在xml文档中查找信息的语言.xpath可以用来在xml文档中对元素和属性进行遍历. 在xpath中,有7中类型的节点,元素,属性,文本,命名空间,处理指令,注释及根节点. 节点 首先 ...

  6. 使用描述符实现property功能

    # Author : Kelvin # Date : 2019/1/25 14:46 class Decproperty: def __init__(self, func): self.func = ...

  7. Asp.Net Core微服务再体验

    ASP.Net Core的基本配置 .在VS中调试的时候有很多修改Web应用运行端口的方法.但是在开发.调试微服务应用的时候可能需要同时在不同端口上开启多个服务器的实例,因此下面主要看看如何通过命令行 ...

  8. SQL之case when then用法(用于分类统计)

    case具有两种格式.简单case函数和case搜索函数. --简单case函数 case sex when '1' then '男' when '2' then '女’ else '其他' end ...

  9. JQ的.serialize()

    前面写的都是用Form表单提交,但是VUE.JS好像不能控制Form的Action. 于是就用AJAX来提交,但是跳转地址(window.location.href=)会暴露数据在url上,就直接用s ...

  10. 从零开始学安全(四十四)●TCP三次握手四次挥手

    wireshark:Beyond Compare是一个网络封包分析软件.网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料.Wireshark使用WinPCAP作为接口,直接与 ...