自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 打通用户态程序和内核系列之二:pthread_mutex_lock的实现

一个很容混淆的地方是,误以为用户程序锁API的实现和接口,最终也会调用内核相关的锁操作提供的API。应用程序锁API接口主要的API有:pthread_mutex_lock;相关说明如下:NAME pthread_mutex_lock -- lock a mutexSYNOPSIS #include <pthread.h> int ...

2019-09-01 22:06:37 731

转载 打通用户态程序和内核系列之一:用户态程序如何执行系统调用

前言之前弄个一段时间内核,而最近在应用程序特别是C++ 方面开发多一些。当前日常工作中碰到一些性能分析、不同锁API选择的问题,发现由于对用户态程序API背后的工作原理,特别是它和内核的调用关系、在内核中具体实现过程不甚清楚,导致前期的预期无法进行分析。为此,打算结合工作中碰到的问题,比如:用户态程序如何执行系统调用;用户态锁的底层实现及其和内核态锁的关系如何;用户态不同锁(自旋锁,读写...

2019-08-31 23:03:40 1122

转载 深入理解SPDK之九:DPDK中的无锁队列

背景分布式系统中读写模式的场景里,存在多个用户(卷)同时写的情况。对于单个盘而言,就是可能存在多个线程同时读写的场景。传统的做法可以通过互斥锁的方式避免并发读写的影响,C++也提供了boost::lock_free方式,此外DPDK 也提供了无锁 ring 的库。由于这个队列是在IO路径上,要求访问这个队列高并发、低延时,为此需要评估上面的几种方法的整体性能。三种接口的异同C++:std:...

2019-08-31 22:17:22 1204

转载 深入理解SPDK之八:性能优化

根笔者最近在SPDK优化上的工作,下面总结了一些可以提升性能的优化点。永远保持高队列深度对于NVME SSD和RDMA这种基于completion queue/submittion queue 硬件机制的设备,就应该根据硬件队列执行的特性,始终保持队列中有物理队列深度这么多的请求在跑,这样才可能榨干硬件性能。数据结构在IO路径上如果你需要缓存一段请求,并且只只需要操作它的头和尾。如果是基于...

2019-08-27 23:10:13 711

转载 浅论epoll_wait

应用场景类似libaio,属于异步IO 模式,实现批量获取完成的event.使用方法step1: 创建epolling fd可以把epolling fd 想象成一个容器或者代理,里面装需要侦听的文件等描述符。创建polling 描述符对应的API及其接口说明如下:EPOLL_CREATE(2) Li...

2019-08-13 07:36:53 409

空空如也

空空如也

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

TA关注的人

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