杂项
未羊_z
这个作者很懒,什么都没留下…
展开
-
pktgen range命令发送报文通讯对最大为16384
pktgen是基于DPDK的报文发送器,可以非常轻易的将报文发送速度达到上千万PPS,是测试网络产品性能的利器。在使用过程中,经常有需要模拟高并发的场景。查询pktgen的文档后可以发现pktgen的range子命令可以设置发送报文的源IP、目的IP、源端口、目的端口的发送范围,从而可以模拟出大量通讯对报文。不过在实际使用中发现当设置range的范围超过某个值时就没有办法再提高了,经过测试后发现这个值是16384(不同的pktgen版本有不同的值)。经过一番搜索后没有发现相关说明,只能查阅相关源代码。最原创 2020-07-30 14:22:55 · 810 阅读 · 0 评论 -
防踩坑!C语言内存管理
对于一个程序员来说,内存的使用对程序的效率和稳定性有着至关重要的作用。C语言对内存使用、管理几乎没有任何限制,这赋予了我们高效管理内存能力的同时也引入了很多内存管理方面的风险。C语言内存管理的灵活性体现可以使用很多极端场景,其他具有GC的高级语言可能无法适用。例如 - 程序对性能特别敏感,不允许GC回收内存时的停顿。 - 程序运行于嵌入式设备内存资源匮乏,及时的内存释放对嵌入式设备是非常重要的。本文会罗列一下开发中经常用到的一些技巧,以减少因为内存使用不当造成bug的情况。原创 2020-05-26 22:46:41 · 585 阅读 · 1 评论 -
深入理解C语言数组与内存分配
C语言在定义数组时是否允许使用变量指定数组长度,如果您的答案否,那我建议您仔细阅读以下这篇文章:)原创 2020-05-22 23:48:24 · 6048 阅读 · 0 评论 -
turbostat
turbostat统计X86 处理器的频率、空闲状态、电源状态、温度等状态。有两种方式调用该命令,第一个是提供command,这个统计CPU的信息直到命令完成。第二种方式移除相关的命令,这种方式每5秒钟展示统计信息。turbostat必须在root权限下调用。一、turboastat可以用来查看CPU核心处在C1 C3 C6 C7状态下时间。在CPU超线程的核心中,如果某个核心处于工作状态,会阻止该超线程的另一个核心进入比C1更加深入的省电模式。二、turbostat可以查看CPU的温度信息。Cor翻译 2020-05-16 23:58:37 · 6854 阅读 · 1 评论 -
TCP重点知识总结
TCP首部16位源端口 16位目的端口32位序号32位确认号4位首部长度 保留6位 URG ACK PSH RST SYN FIN 16位窗口大小16位校验和 16位紧急指针选项数据TCP首部共计20字节TCP校验和TCP头中的校验和,需要在TCP头的前边加上一个含有源目IP的伪首部。MSS段MSS段表明最大报文长度,发送该值的一端将不接受超过这个长度的TCP报文段,这通常是为了避免IP分段。2MSL2MSL等待状态:TIME_WAIT状态。是任何丢弃的报文在网络原创 2020-05-16 23:45:03 · 324 阅读 · 0 评论 -
补码编码
补码编码用于有符号数的表示。最高位表示尾符号位。他的权重为-2的w-1次方。比如以4位为例子,最高位是符号位。0001 = -02**3+022+0*21+12**0=0+0+0+1=10101 = -023+1*22+02**1+120=0+4+0+1=51011 = -1*23+02**2+121+1*20=-8+0+2+1=-51111 = -12**3+122+1*21+1*2**0=-8+4+2+1=-1补码的表示范围不对称的,|TMin| = |TMax|+1。因为0是非负数,意味着表原创 2020-05-16 23:35:21 · 595 阅读 · 0 评论 -
使用sar命令分析Linux卡死
卡死现象Linux卡死时的现象无法通过网络连接到Console,ping 主机IP时通的,但是telnet常用端口比如22等是不通的。机器重启后,查看日志发现日志在机器卡死时间节点后就断掉了,就像机器被突然拔掉了电源。Linux系统卡死危害是非常大的,一般系统卡死后机器失去响应,无法通过正常手段对系统进行操控,如果没有安装相关的带外管理口,很有可能需要运维人员进入到机房进行手动重启才能恢复。找到sar文件sar是Linux每隔一段时间都会对系统收集各种资源使用的工具,每一天都会产生一个文件,存储在原创 2020-05-16 10:38:16 · 975 阅读 · 0 评论 -
十分钟搞定CENTOS7 netmap安装
netmap是作为Linux的一个内核模块存在的,使用netmap需要我们拿到netmap的源代码并结合Linux内核源代码进行编译的。安装kernel头文件一般我们不需要获取所有的linux代码,只需要获取linux的头文件即可。此处需要注意的是我们选取的linux系统的版本一定要和宿主机系统完全一致的版本才可以。例如我们实验机器的系统版本如下:使用谷歌搜索圈出的字符串可以找到这个文件安装后就是我们要找的头文件。将该文件下载安装到机器上。rpm -ivh kernel-devel-3.10.原创 2020-05-15 08:46:59 · 1004 阅读 · 0 评论