自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 收藏
  • 关注

转载 剖析top命令显示的VIRT RES SHR值

http://yalung929.blog.163.com/blog/static/203898225201212981731971/ http://www.fuzhijie.me/?p=741  引 言: top命令作为Linux下最常用的性能分析工具之一,可以监控、收集进程的CPU、IO、内存使用情况。比如我们可以通过top命令获得一个进程使用了多少虚拟内存(VIRT)、物理内存(...

2018-07-26 10:36:53 747

转载 重新编译Nginx指导手册【修复静态编译Openssl的Nginx漏洞 】[Openssl Heartbleed]

公司系统被扫出OPENSSL拒绝服务漏洞,需要静态编译OPENSSL到NGINX,参考文章记录如下:地址: http://blog.csdn.net/hujkay作者:Jekkay Hu([email protected])关键词:openssl, heartbleed, CVE-2014-0160,漏洞修复, 补丁下载, 静态Nginx,重新编译时间: 2014/4/111. 概述    当前爆出了...

2018-06-22 15:15:19 599

转载 磁盘利用率和饱和度

导读如何观察磁盘的IO利用率以及饱和度?看文本文给你解药!翻译团队:知数堂藏经阁项目 - 菜鸟盟团队成员:菜鸟盟–hades、菜鸟盟-bruce、菜鸟盟-冰焰译文校稿:叶师傅原文出处:https://www.percona.com/blog/2017/08/28/looking-disk-utilization-and-saturation/原文作者:Peter Zaitsev (Percona ...

2018-06-21 11:36:24 2901

转载 IO测试工具之fio详解

转自:https://www.cnblogs.com/raykuan/p/6914748.html目前主流的第三方IO测试工具有fio、iometer和Orion,这三种工具各有千秋。fio在Linux系统下使用比较方便,iometer在window系统下使用比较方便,Orion是oracle的IO测试软件,可在没有安装oracle数据库的情况下模拟oracle数据库场景的读写。如下是在Linux...

2018-06-21 11:05:36 946

转载 深入理解iostat

转自:https://blog.csdn.net/shaochenshuo/article/details/76212566前言iostat算是比较重要的查看块设备运行状态的工具,相信大多数使用Linux的同学都用过这个工具,或者听说过这个工具。但是对于这个工具,引起的误解也是最多的,大多数人对这个工具处于朦朦胧胧的状态。现在我们由浅到深地介绍这个工具,它输出的含义什么,介绍它的能力边界,介绍关于...

2018-06-21 10:54:35 256

原创 DPDK(19):CENTOS 7.5编译DPDK

在网上看很多人在CENTOS上编译DPDK很顺利,而在FSTACK的群里面大部分人运维KNI和内核不配套编译失败:1、操作系统版本[root@localhost x86_64-native-linuxapp-gcc]# uname -aLinux localhost.localdomain 3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2...

2018-06-19 15:08:51 2810

转载 ansible

转自:https://blog.csdn.net/zongyimin/article/details/72957478ansible初识运维工作系统安装:   bare metal(实体机 ):pxe技术,cobbler技术   virtural machine(虚拟机):VMware,批量部署操作应用程序部署&configuration工具:    puppet:ruby    salt...

2018-04-23 09:15:50 537

转载 最全的数据分析平台整理

转自:https://blog.csdn.net/j2iayu7y/article/details/79825305数据可视化工具:百度ECharts:http://echarts.baidu.com/Cytoscape:http://www.cytoscape.org/图表秀:http://www.tubiaoxiu.com/数据观:http://shujuguan.cn/微博足迹可视化:htt...

2018-04-09 09:13:23 773

转载 Linux 驱动编译报错:error: macro "__DATE__" might prevent reproducible builds [-Werror=date-time]

网上有的说是修改:CFLAGS  有的修改:EXTRA_FLAGS,可以都试一下。转自:http://blog.csdn.net/jazzsoldier/article/details/75221514编译驱动时遇到这个错误提示,表示当前编译环境中将关于 DATE 以及 TIME 的警告也作为错误来进行处理的。有如下几种方法可以参考:1. 在编译驱动的相

2018-02-05 08:47:38 5274

转载 Nginx为什么比Apache Httpd高效:原理篇

转自:https://www.cnblogs.com/zm-0713/p/5064168.html对IO模型写的很清楚Nginx为什么比Apache Httpd高效:原理篇一、进程、线程?进程是具有一定独立功能的,在计算机中已经运行的程序的实体。在早期系统中(如linux 2.4以前),进程是基本运作单位,在支持线程的系统中(如win

2018-01-26 16:41:53 238

转载 Linux之/etc/inittab文件

Linux之/etc/inittab文件

2018-01-19 16:06:06 392

原创 数据通信:RIP配置宣告网络号时不带子网掩码?

这个问题很奇怪,为什么设置时不带子网掩码,查看原因是RIP只支持classful网络宣告。这个意思是RIP以主类网络来发布网段,不管你network后面跟的是什么,它都给你划到主类网络中去的。例如network 1.1.1.1 ,实际有效的show run 中会显示1.0.0.0 ;再如network 172.16.18.0  实际有效的是172.16.0.0  。        反思这个实现

2017-12-13 10:43:28 6656

转载 linux内核-网络报文发送流程

转自:https://www.cnblogs.com/oldmanold/p/4097839.html报文的发送是由网络协议栈的上层发起的。网络协议栈上层构造一个需要发送的skb结构后(该skb已经包含了数据链路层的报头),调用dev_queue_xmit函数进行发送;dev_queue_xmit(skb);该函数先会处理一些缓冲区重组、计算校验和之类的杂事,然后开始处理报文的发送

2017-11-25 21:20:01 1194

转载 DPDK(18):内存屏障

转自:http://blog.csdn.net/world_hello_100/article/details/50131497Memory barrier 简介程序在运行时内存实际的访问顺序和程序代码编写的访问顺序不一定一致,这就是内存乱序访问。内存乱序访问行为出现的理由是为了提升程序运行时的性能。内存乱序访问主要发生在两个阶段:编译时,编译器优化导致内存乱序访问(指

2017-11-19 17:53:26 3472

转载 DPDK(17):网卡多队列技术与RSS功能介绍、DPDK多队列

转自:http://blog.csdn.net/baidu_24553027/article/details/54927724多队列网卡是一种技术,最初是用来解决网络IO QoS (quality of service)问题的,后来随着网络IO的带宽的不断提升,单核CPU不能完全处满足网卡的需求,通过多队列网卡驱动的支持,将各个队列通过中断绑定到不同的核上,以满足网卡的需求。

2017-11-19 00:06:43 7290 1

转载 DPDK pdump抓包说明

转自:https://www.cnblogs.com/yhp-smarthome/p/7102557.html一.环境与编译pdump库是在16.07版本引入的,提供了一个抓包调试功能。在$(RTE_SDK)/app目录下就有一个dpdk-pdump的工具。配置这个这个工具可以用于抓取指定接口、队列的数据包。1.1 库及依赖Pdump依赖于libpcap库及libpcap-

2017-11-15 16:48:05 10096

转载 精彩---rtl8139网卡驱动程序分析

学习应该是一个先把问题简单化,再把问题复杂化的过程。一开始就着手处理复杂的问题,难免让人有心惊胆颤,捉襟见肘的感觉。读Linux网卡驱动 也是一样。那长长的源码夹杂着那些我们陌生的变量和符号,望而生畏便是理所当然的了。不要担心,事情总有解决的办法,先把一些我们管不着的代码切割出去,留下必须的部分,把框架掌握了,那其他的事情自然就水到渠成了,这是笔者的心得。         一般在使用的Linu

2017-11-15 16:45:32 1020

转载 网卡的若干知识

1.认识网卡,我们上网必备组件之一。       网卡工作在osi的最后两层,物理层和数据链路层,物理层定义了数据传送与接收所需要的电与光信号、线路状态、时钟基准、数据编码和电路等,并向数据链路层设备提供标准接口。物理层的芯片称之为PHY。数据链路层则提供寻址机构、数据帧的构建、数据差错检查、传送控制、向网络层提供标准的数据接口等功能。以太网卡中数据链路层的芯片称之为MAC控制器。很多网卡

2017-11-15 16:44:01 701

转载 KVM详解,太详细太深入了,经典

KVM 介绍(1):简介及安装http://www.cnblogs.com/sammyliu/p/4543110.html学习 KVM 的系列文章: (1)介绍和安装(2)CPU 和 内存虚拟化(3)I/O QEMU 全虚拟化和准虚拟化(Para-virtulizaiton)(4)I/O PCI/PCIe设备直接分配和 SR-IOV(5)libv

2017-11-15 16:39:56 7132

转载 【转】千万级并发实现的秘密:内核不是解决方案,而是问题所在!

这真是一篇很好的分析,13年的文章,目前来看基本是按照这个文章的分析在实现,有前瞻性的分析真的很难得,提前五年能看清楚下一步应该怎么走是相当考验功底。摘要:C10K问题让我们意识到:当并发连接达到10K时,选择不同的解决方案,笔记本性能可能会超过16核服务器。对于C10K问题,我们或绕过,或克服;然而随着并发逐渐增多,在这个后10K的时代里,你是否有想过如何去克服C10M。既然我们

2017-11-09 11:58:10 311

转载 DPDK(16):DPDK多核多线程机制简析

在看FSTACK的代码时发现FSTACK将一些查询配置的处理放到了转发线程上,显然这种方式会导致转发处理每个包都要多处理,建议是控制和转发分离,不过具体有多大影响还是需要测试,毕竟协议栈的处理流程很长,在流程中增加一个判断并没有那么大影响。在转发流程中处理了消息,不建议这么使用: } process_msg_ring(qconf->proc_id);

2017-11-09 11:15:16 2027

转载 DPDK(15):DPDK中断机制简析

转自:http://www.cnblogs.com/MerlinJ/p/4104039.html DPDK通过在线程中使用epoll模型,监听UIO设备的事件,来模拟操作系统的中断处理。 一、中断初始化在rte_eal_intr_init()函数中初始化中断。具体如下:1、首先初始化intr_sources链表。所有UIO设备的中断都挂在这个链表上,中断处理线程通过遍历这个链表

2017-11-09 10:48:58 1604

转载 DPDK(14):rte_mbuf

本文主要介绍rte_mbuf与rte_mempool数据结构之间的组织关系、以及网卡接收到的数据是如何存储在rte_mbuf中的。 一、rte_mbuf、rte_mempool及网卡收到的数据包在内存中的组织结构      调用rte_mempool_create()函数创建rte_mempool的时候,指定申请多少个rte_mbuff及每个rte_mbuf中elt_size的大小

2017-11-09 10:03:16 605

转载 DPDK(13):rte_malloc内存管理

转自:http://www.cnblogs.com/MerlinJ/p/4092432.html,用于个人记录学习rte_malloc()为程序运行过程中分配内存,模拟从堆中动态分配内存空间。1 void *2 rte_malloc(const char *type, size_t size, unsigned align)3 {4 return rte_ma

2017-11-09 10:02:07 462

转载 DPDK(12):rte_mempool内存管理

转自:http://www.cnblogs.com/MerlinJ/p/4081986.html,作为记录参考DPDK以两种方式对外提供内存管理方法,一个是rte_mempool,主要用于网卡数据包的收发;一个是rte_malloc,主要为应用程序提供内存使用接口。本文讨论rte_mempool。rte_mempool由函数rte_mempool_create()负责创建,从rte_confi

2017-11-09 10:00:15 852

转载 DPDK(11):内存初始化

写的很好的文章,我应该是不能写的比这个更加清晰了。需要指出的一点的时DPDK多进程通过将大叶内存映射到相同的虚拟地址,达到通过队列发送报文到另外进程只需发送指针即可,能够取到相同的内容。DPDK的内存管理是DPDK一个很重要的点,是DPDK的基础。转自:http://www.cnblogs.com/jiayy/p/3429725.html一  前言htt

2017-11-08 21:12:28 1196

原创 DPDK(10):报文处理中的指令预取(prefetcht0)

在DPDK的例子中报文处理时读取报文内容时添加了指令预取命令: /* * Read packet from RX queues */ for (i = 0; i n_rx_port; i++) { portid = qconf->rx_port_list[i]; nb_rx = rte_eth_rx_burst((uint8_t) portid, 0,

2017-11-08 17:04:15 9088 1

原创 DPDK(9):tcpdump出现本机地址替换为bogon

tcpdump抓包时IP地址莫名其妙变为bogon,应该是和DNS或者hostname有一定的关系,但是我的电脑hostname又没有修改,应该和我修改了虚拟机配置有关系。        找到一种办法是在tcpdump中加参数-nn,姑且解决一下问题。加参数前:root@ubuntu:/home/cling60# tcpdump -vv -i eth3 -c 10tcpdump

2017-11-08 09:35:21 1895

转载 数据结构与算法4:二叉树2(平衡二叉树)

代码转自:http://www.cnblogs.com/skywang12345/p/3576969.html,图文并茂,此处只用于个人备份,感谢原作者skywang12345avl_tree.h:#ifndef _AVL_TREE_H_#define _AVL_TREE_H_typedef int Type;typedef struct AVLTreeNode{

2017-11-07 10:43:18 301

原创 数据结构与算法4:二叉树1(二叉查找树)

二叉查找树需要注意的是删除操作,网上很多实现有些问题,还是自己手工实现一遍#include #include typedef int Type;typedef struct tag_BSTNode{ Type key; struct tag_BSTNode *left; struct tag_BSTNode *right;} BSTNode,*BSTree

2017-11-06 17:30:57 152

原创 数据结构与算法3:链表3

链表表示的大数相加

2017-11-03 21:42:15 171

原创 数据结构与算法3:链表2

找到链表中倒数第K个节点使用两个指针实现,一个指针先走K步,然后开始一起走动;类似的题目找到链表的中间节点,可以使用快慢指针,一个指针走一步,另一个指针走两步#include #include typedef struct tag_LinkNode{ int data; struct tag_LinkNode *next; } LinkNode;LinkNode

2017-11-03 17:57:18 231

原创 数据结构与算法3:链表1

删除链表中重复节点

2017-11-03 17:30:22 147

原创 数据结构与算法2:字符串与数组

字符串相关题目实现

2017-11-01 15:44:20 251

原创 使用RUBY遍历目录下的所有文件

在看腾讯开源的FSTACK,其中协议栈使用的是FREEBSD的代码,使用的版本是11.0,对比看是否进行修改,下载的代码有一个类似标记的地方有一点差异。使用RUBY将这些差异修正,然后对比即可。但是在Windows上保存文件格式为DOS,需要使用dos2unix转换一下,这样使用beyond compare比较就不会有差异了。        比较的结果为,确实没有修改bsd的代码。   

2017-10-31 21:08:32 4877

原创 协议栈之一:《linux内核网络栈源代码情景分析》.(曹桂平)

在工作中或多或少需要和协议栈打交道,因为公司的策略,公司自有的协议栈基本都是基于开源协议栈的理解重写的协议栈,在可维护性和性能方面均比开源软件强势很多,可惜在公司时更多是调用API,并未从头到尾研究过一个完整的协议栈。从事网络工作没有研究过完整的协议栈,不得不说是个严重的缺失。本想基于2.6内核进行协议栈分析,分析了一段时间,感觉有些吃力,估计得分析几遍才能理解透彻,而且并不能真正掌握。 

2017-10-30 10:37:17 2274

转载 Raw_Socket原始套接字

纯记录,转自:http://a1liujin.blog.51cto.com/5519498/1697465一、创建raw socket的权限:只有root权限才能够创建.二、raw socket的用途:主要有三个方面(1):通过raw socket来接收发向本机的ICMP,IGMP协议包,或者用来发送这些协议包.(2):接收发向本机但TCP/IP栈不

2017-10-24 21:55:55 2640

原创 数据结构与算法1:数组1

数组是由一段连续固定大小的内存构成的存储结构,这样决定数组具备几个特性:(1)、存储空间固定,使用前申请预估规格大小。当然我们也可以实现一个动态数组,按照一定步长延长数组,但是不可避免需要拷贝。(2)、插入删除需要移动元素,因为存储的元素是连续的。当然也可以设计一种存储结构,可以实现间断存储,但是这样需要增加额外的数据段描述是否存在数据。(3)、查找需要使用数组下标进行遍历,也带来好处

2017-10-17 17:26:34 217

原创 sti()和cli()

1.2.13协议栈中用到这两个宏:#define sti() __asm__ __volatile__ ("sti": : :"memory")#define cli() __asm__ __volatile__ ("cli": : :"memory")这个语句需要分为两个部分来看:1、转自:http://blog.csdn.net/njuitjf/article/de

2017-09-22 18:15:18 4771

转载 大内核锁、读写锁、大读者锁、RCU和顺序锁

协议栈分析过程中遇到的知识点记录对比Linux 1.2.13 和 2.6.3 协议栈,最大的区别在与对多核的支持,所以锁的支持情况很重要http://www.ibm.com/developerworks/cn/linux/l-synch/part2/这是本系列文章的第二部分,它详细地介绍了Linux内核中的同步机制:大内核锁、读写锁、大读者锁、RCU和顺序锁的API,使

2017-09-19 21:33:11 3058 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除