11 2014 档案
CSDN网站被黑
摘要:[root@YMOS_DEFAULT ~]# dig @8.8.8.8 www.csdn.net; > DiG 9.9.4-P2-RedHat-9.9.4-4.el6 > @8.8.8.8 www.csdn.net; (1 server found);; global options: +cmd;;... 阅读全文
posted @ 2014-11-28 16:32 MerlinJ 阅读(1027) 评论(1) 推荐(0)
【转】linux下查看线程数的几种方法
摘要:1、 cat /proc/${pid}/status2、pstree -p ${pid}3、top -p ${pid} 再按H 或者直接输入 top -bH -d 3 -p ${pid}top -H手册中说:-H : Threads toggle加上这个选项启动top,top一行显示一个线程。否则,... 阅读全文
posted @ 2014-11-21 14:04 MerlinJ 阅读(414) 评论(0) 推荐(0)
Linux 查看进程在哪个CPU上运行
摘要:ps命令的输出格式可以通过-o参数定制,可以使用如下命令显示进程所对应的执行CPU:# ps -eo pid,args,psr参数的含义:pid - 进程IDargs - 该进程执行时传入的命令行参数psr - 分配给进程的CPU 阅读全文
posted @ 2014-11-21 14:04 MerlinJ 阅读(3779) 评论(0) 推荐(0)
【转】千万级并发实现的秘密:内核不是解决方案,而是问题所在!
摘要:C10K问题让我们意识到:当并发连接达到10K时,选择不同的解决方案,笔记本性能可能会超过16核服务器。对于C10K问题,我们或绕过,或克服;然而随着并发逐渐增多,在这个后10K的时代里,你是否有想过如何去克服C10M。 阅读全文
posted @ 2014-11-20 20:00 MerlinJ 阅读(808) 评论(0) 推荐(0)
漫话NUMA
摘要:在DPDK中,使用了NUMA技术,来提高CPU对内存的访问效率.那么什么是NUMA呢,它是如何提高CPU访问内存的效率的呢?首先,我们先明确几个概念,即,SMP、NUMA、MPP。它们是目前主流的计算机系统架构。SMP(Symmetric Multi-Processor):对称多处理结构。在这样的系... 阅读全文
posted @ 2014-11-20 19:59 MerlinJ 阅读(1866) 评论(0) 推荐(0)
【转】为什么要内存对齐 Data alignment: Straighten up and fly right
摘要:为了速度和正确性,请对齐你的数据. 概述:对于所有直接操作内存的程序员来说,数据对齐都是很重要的问题.数据对齐对你的程序的表现甚至能否正常运行都会产生影响.就像本文章阐述的一样,理解了对齐的本质还能够解释一些处理器的"奇怪的"行为.内存存取粒度程序员通常倾向于认为内存就像一个字节数组.在C及其衍生语... 阅读全文
posted @ 2014-11-20 14:31 MerlinJ 阅读(951) 评论(0) 推荐(0)
【转】内存地址对齐运算
摘要:做地址对齐的代码:#define _INTSIZEOF(n) ((sizeof(n)+sizeof(int)-1)&~(sizeof(int) - 1) ) //为了满足需要内存对齐的系统这段代码做的事情就是,给定一个变量n,算出这个变量对齐到某个字长(整型的字节数)整数倍的字节数。这段代码有些难以... 阅读全文
posted @ 2014-11-20 14:30 MerlinJ 阅读(906) 评论(0) 推荐(0)
DPDK收发包处理流程-----(一)网卡初始化
摘要:本文基于DPDK-1.8.0分析。网卡驱动模型一般包含三层,即,PCI总线设备、网卡设备以及网卡设备的私有数据结构,即将设备的共性一层层的抽象,PCI总线设备包含网卡设备,网卡设备又包含其私有数据结构。在DPDK中,首先会注册设备驱动,然后查找当前系统有哪些PCI设备,并通过PCI_ID为PCI设备... 阅读全文
posted @ 2014-11-20 13:55 MerlinJ 阅读(22513) 评论(4) 推荐(8)
DPDK中断机制简析
摘要:DPDK通过在线程中使用epoll模型,监听UIO设备的事件,来模拟操作系统的中断处理。一、中断初始化在rte_eal_intr_init()函数中初始化中断。具体如下:1、首先初始化intr_sources链表。所有UIO设备的中断都挂在这个链表上,中断处理线程通过遍历这个链表,来执行设备的中断。... 阅读全文
posted @ 2014-11-18 15:05 MerlinJ 阅读(7395) 评论(1) 推荐(1)
DPDK多核多线程机制简析
摘要:DPDK通过在多核设备上,创建多个线程,每个线程绑定到单独的核上,减少线程调度的开销,以提高性能。DPDK的线程分为控制线程和数据线程,控制线程一般绑定到MASTER核上,主要是接受用户配置,并传递配置参数给数据线程等;数据线程主要是处理数据包。一、初始化1、rte_eal_cpu_init()函数... 阅读全文
posted @ 2014-11-17 16:17 MerlinJ 阅读(11845) 评论(3) 推荐(1)
DPDK内存管理-----(三)rte_malloc内存管理
摘要:rte_malloc()为程序运行过程中分配内存,模拟从堆中动态分配内存空间。1 void *2 rte_malloc(const char *type, size_t size, unsigned align)3 {4 return rte_malloc_socket(type, size... 阅读全文
posted @ 2014-11-12 15:55 MerlinJ 阅读(10203) 评论(0) 推荐(1)
DPDK内存管理-----(二)rte_mempool内存管理
摘要:DPDK以两种方式对外提供内存管理方法,一个是rte_mempool,主要用于网卡数据包的收发;一个是rte_malloc,主要为应用程序提供内存使用接口。本文讨论rte_mempool。rte_mempool由函数rte_mempool_create()负责创建,从rte_config.mem_c... 阅读全文
posted @ 2014-11-10 17:15 MerlinJ 阅读(12504) 评论(2) 推荐(1)
DPDK内存管理-----(一)初始化
摘要:1 前言DPDK通过使用hugetlbfs,减少CPU TLB表的Miss次数,提高性能。2 初始化DPDK的内存初始化工作,主要是将hugetlbfs的配置的大内存页,根据其映射的物理地址是否连续、属于哪个Socket等,有效的组织起来,为后续管理提供便利。2.1eal_hugepage_info... 阅读全文
posted @ 2014-11-06 12:01 MerlinJ 阅读(11223) 评论(4) 推荐(2)
Linux Hugetlbfs内核源码简析-----(二)Hugetlbfs挂载
摘要:本文只讨论执行"mount none /mnt/huge -t hugetlbfs"命令后,mount系统调用的执行过程(基于Linux-3.4.51),不涉及进程相关的细节。mount系统调用的内核实现: 1 SYSCALL_DEFINE5(mount, char __user *, dev_na... 阅读全文
posted @ 2014-11-04 10:54 MerlinJ 阅读(3212) 评论(0) 推荐(0)