自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(122)
  • 资源 (2)
  • 收藏
  • 关注

原创 将可调用对象转换为 c 风格指针

// 将可调用对象转换为 c 风格指针,主要用于 c++ 类函数/bind 作为 c library 回调// 原理通过 Tag 构建特定类,静态成员存储 c++ 调用对象,静态函数可直接转化成 c 函数指针

2022-08-11 20:59:55 264 1

原创 关于Zipf_Mandelbrot律中参数_的一种解释

https://wenku.baidu.com/view/9025f409763231126edb11e8.html

2018-07-25 10:15:40 859

转载 dm-cache 与 bcache

在 LSFMM 2013 峰会上,Mike Snitzer, Kent Overstreet, Alasdair Kergon, 和 Darrick Wong 共同主持了一个讨论,内容是关于两个彼此独立的块设备层缓存方案 —— dm-cache 和 bcache。 Snitzer 首先介绍了 3.9 kernel 引入的 dm-cache。这个方案使用率内核中的 device mapper 框架,...

2018-07-12 22:57:26 2237

原创 rpmbuild 增量编译打包

如果编译失败了,你可能会动心去”在编译文件夹下“修改点什么;这通常不是一个好想法,因为命令osc build一般会舍弃那里的任何东西( rm -rf 删除)并从头再来。如果编译耗时很长——这对大项目来说是很正常不过的,这种策略很不幸对增量实时修改来说就是不可行的。想绕开这个问题,检视你的.build.command文件(在编译目录下哦);它通常包含这样的一行:rpmbuild -ba packag...

2018-07-10 11:41:35 1282

原创 linux 同步IO: sync、fsync与fdatasync

传统的UNIX实现在内核中设有缓冲区高速缓存或页面高速缓存,大多数磁盘I/O都通过缓冲进行。当将数据写入文件时,内核通常先将该数据复制到其中一个缓冲区中,如果该缓冲区尚未写满,则并不将其排入输出队列,而是等待其写满或者当内核需要重用该缓冲区以便存放其他磁盘块数据时,再将该缓冲排入输出队列,然后待其到达队首时,才进行实际的I/O操作。这种输出方式被称为延迟写(delayed write)(Bach ...

2018-07-05 15:01:33 632 1

原创 vim 配置

https://github.com/letterwuyu/vim-base-plugin直接安装如果有用请点颗星

2018-05-30 15:39:57 155

转载 Ceph添加OSD节点

1、首先需要在新的节点上安装ceph软件,当然这个需要做一系列的准备工作比如安装ssh-keygen,配置ntp等在管理节点上执行:[root@ceph-admin ~]#su -dgb$ceph-deploy install --no-adjust-repos ceph52、获取osd的ID 这个操作是在管理节点上执行[root@ceph-admin ~]#ceph osd create    ...

2018-05-24 17:50:06 6270

转载 安装devtoolset来满足gcc不同版本的要求

在绝大多数情况下编译一些东西还是够用的,但还是有个别软件对gcc的版本是有要求的,例如rethinkdb这个东西,就要求4.8.2以上的版本,为什么呢?因为要用c++11特性,这个在CentOS6中的默认gcc版本是不支持的。要解决这个问题一般有两种方法:1、手动编译gcc>4.8的版本2、安装devtoolset第一种方法相对来说耗时耗力,适合真的想折腾的同学,第二种方法是偷懒用的,可以快...

2018-05-17 11:59:58 5070

转载 ceph 测试

ceph--磁盘和rbd、rados性能测试工具和方法我在物理机上创建了5台虚拟机,搭建了一个ceph集群,结构如图:具体的安装步骤参考文档:http://docs.ceph.org.cn/start/                                http://www.centoscn.com/CentosServer/test/2015/0521/5489.html 一、磁盘读...

2018-05-16 16:08:12 900

原创 vim 显示tab键

Vim里面显示TAB键 1、文件中有 TAB 键的时候,你是看不见的。要把它显示出来:C代码:set list  :set list现在 TAB 键显示为 ^I,而 $显示在每行的结尾,以便你能找到可能会被你忽略的空白 字符在哪里。 2、方法1中这样做的一个缺点是在有很多 TAB 的时候看起来很丑。如果你使用一个有颜色的 终端,或者使用 GUI 模式,Vim 可以用高亮显示空格和TAB。 使用 '...

2018-05-14 18:00:27 6532 1

转载 Ceph中出现unfound object的情况和处理

https://blog.csdn.net/changtao381/article/details/51626285在上周的ceph-devel 邮件列表中,有人提到了在测试的环境中出现了 unfound object 的状态,本文试图分析这种情况发生的原理。首先介绍一下什么是 unfoud object ? unfoud object 对象就是 完成了peering 过程,各个副本达成了...

2018-05-11 10:26:43 1102 3

转载 SPDK简介

http://aidaiz.com/spdk/《Introduction to the Storage Performance Development Kit (SPDK)》简介固态存储设备正在取代数据中心。目前这一代的闪存存储,比起传统的磁盘设备,在性能(performance)、功耗(power consumption)和机架密度(rack density)上具有显著的优势。这些优势将会继续增...

2018-05-06 14:45:24 1820

转载 保存ssh的主机名和用户名

在linux下,要远程连接另外一台linux服务器,可以使用ssh,具体类似下面的命令:$ ssh [email protected]但是,如果登陆linux服务器是每天的都要做的事情,那么这样每天输入用户名和IP地址是稍微有些麻烦的。使用下面的方法,你就可以避免这种麻烦。在用户根目录下的.ssh文件内创建config文件,如下:$ vi ~/.ssh/config在其中以类似如下的格式输...

2018-05-04 13:35:52 9201

转载 Linux如何查找大文件或目录总结

1: 如何查找大文件?https://www.cnblogs.com/kerrycode/p/4391859.html其实很多时候,你需要了解当前系统下有哪些大文件,比如文件大小超过100M或1G(阀值视具体情况而定)。那么如何把这些大文件搜索出来呢?例如我要搜索当前目录下,超过800M大小的文件[root@getlnx01 u03]# pwd/u03[root@getlnx01 u03]# fi...

2018-05-02 10:44:36 175

转载 ceph存储 pg归置组处于stuck以及degraded状态解决方案

https://blog.csdn.net/skdkjzz/article/details/42486793由于对ceph的兴趣,我们经常自己搭建ceph集群,可能是单节点,也可能是多节点,但是经常遇到pg归置组异常状态,下面是遇到的一些情况:1、单节点的时候pg归置组unclean或者degraded    这个时候应该检查,自己是几个osd,副本数是多少,副本的最小值是多少,还有故障域是不是o...

2018-04-18 17:39:34 3568

转载 ceph rbd快照原理解析

http://www.sysnote.org/2016/02/28/ceph-rbd-snap/前段时间一直在研究ceph的快照以及其所涉及的故障恢复逻辑,ceph在这部分的实现挺精妙的,虽然也是基于COW实现的,但是细细品来,其在快照的元数据管理以及父子关系的维护上有独到之处,本文将详细阐述快照的实现原理以及快照对象在恢复时如何至关重要的作用。1.rbd快照的直观理解ceph的rbd卷可用做多次...

2018-04-17 10:29:41 6112 2

转载 CEPH告警:health_warn 45 pgs degraded;60 pgs unclean; 45 pgs undersized

此告警是由于osd个数存在问题,由文档说osd的个数应该是单数,1,3,5...而查看我的OSD个数ceph osd tree显示只有4个up,其余的在测试时被我自己删除了,从而导致了这个问题实际就是说pgs数量少了,由于初学没能完全了解其中原理,只能慢慢积累。那么解决的办法就是添加一个osd,在node1上添加一个OSD:ceph_deploy --overwrite-conf osd crea...

2018-04-16 15:47:26 1349

转载 SDN 简介

来源:鲜枣课堂/微信ID:xzclasscom很久很久以前,有一个村子,名叫“通信童心村”。村里的每一户,都有一个男人和一个女人。每一户,都以搬砖为生。从不同的地方,搬到不同的地方。他们怎么办呢?很简单,男人负责搬,女人负责告诉男人往哪搬。。。每个家庭,都服从村委会的指挥。村委会根据砖厂老板的需求,跑去告诉每家每户该怎么搬。。。最开始,大家搬砖搬得挺开心的,一切都很顺利。可是,砖头越来越多,村子规...

2018-04-13 19:11:53 5765 2

原创 编译 Linux Kernel

内核编译1、下载kernel源码2、安装编译所需yum install gccyum install ncurses ncurses-develyum install elfutils-libelf-devel3、将源码拷贝到/usr/src目录下4、删除上一次编译内核产生的文件make mrproper #命令会删除所有的编译生成文件、内核配置文件(.config文件)和各种备份文件      ...

2018-04-02 18:57:30 498

转载 C++17中那些值得关注的特性

转自:http://blog.jobbole.com/112106/引用C++17标准在2017上半年已经讨论确定,正在形成ISO标准文档,今年晚些时候会正式发布。本文将介绍最新标准中值得开发者关注的新特新和基本用法。总的来说C++17相比C++11的新特性来说新特性不算多,做了一些小幅改进。C++17增加了数十项新特性,值得关注的特性大概有下面这些:constexpr ifconstexpr l...

2018-04-01 19:43:09 717

转载 Linux KSM

转载:http://www.cnblogs.com/zhangzhang/archive/2012/05/23/2514336.html简介:作为一个系统管理程序(hypervisor),Linux® 有几个创新,2.6.32 内核中一个有趣的变化是 KSM(Kernel Samepage Merging)  允许这个系统管理程序通过合并内存页面来增加并发虚拟机的数量。本文探索 KSM 背后的理念...

2018-04-01 19:36:36 7487

转载 pragram 预处理指令详解

原文链接:http://blog.csdn.net/jx_kingwei/article/details/367312 在所有的预处理指令中,#pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译

2017-11-06 20:42:34 1717

原创 bridge模式实例

#include //画笔抽象类class Pen {public: virtual ~Pen();public: virtual void PrintProstect() const = 0; virtual void PrintContext() const = 0;};Pen::~Pen() {}//画笔Aclass PenA : public Pen {publ

2017-10-27 17:12:53 569

原创 builder模式实例

#include <iostream>#include <algorithm>#include <vector>#include <list>#include <memory>//产品抽象类class Product{public: virtual void AddPart(const std::string& str) = 0; virtual ~Product() = 0;public: virtual void DoAction() const = 0;};Product:

2017-10-27 12:09:24 321

转载 Builder模式的误区:将复杂对象的构建进行封装,就是Builder模式了吗?

http://www.cnblogs.com/happyhippy/archive/2010/09/01/1814287.html 最近重读GOF的《设计模式》,读到Builder模式的时候,发现还是不能领悟;网上搜了下其他人的解释,发现很多人都用错了Builder模式,结构形似Builder,实际上却更像Template、或者Factory Method,或者四不像,并没有体现出Buil

2017-10-26 21:08:33 277

转载 Linux Arp表相关操作

1.基本原理地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。地址解析协议是建立在网络中各

2017-10-18 20:18:14 4918

原创 Singleton 单例模式 -- 饿汉

/*直接照着boost库的一个比较广泛的单例模式写的,一字不错,boost有很多单例模式可以研究 *最近项目用到一个单例模式,是教科书使得,'懒汉模式',这个是'饿汉模式',优点是在main函数 *开始之前就构造实例了,这样是线程安全的,效率比较高,毕竟不是在堆上创建的一般单例不需要考虑内存的泄露,静态变量生存周期 *和程序运行周期是一样的,知道程序结束而释放,。。。总之没必要为了一个单例模

2017-09-22 18:42:17 263

原创 windows查看端口占用

cmd->netstat -ano

2017-09-21 11:04:35 247

转载 mysql的查询、子查询及连接查询

一、mysql查询的五种子句        where(条件查询)、having(筛选)、group by(分组)、order by(排序)、limit(限制结果数)         1、where常用运算符:            比较运算符                > ,  ),>=   ,                   in(v1,v2..vn)   

2017-09-14 22:53:50 234

转载 mysqlpp

MySQL是一个的开源关系型数据库,对于服务端开发来说是一个优秀的选择。本篇内容将介绍如何在C++程序里操作MySQL数据库。—————————————————————————————————————————————————————————————阅读本篇内容之前你需要先了解以下知识:C++编译链接基本原理make相关知识SQL基础知识和CRUD基础操作能力

2017-09-11 23:51:08 3205

转载 Linux 共享库:LD_LIBRARY_PATH 与ld.so.conf

LD_LIBRARY_PATH  Linux环境变量名,该环境变量主要用于指定查找共享库(动态链接库)时除了默认路径之外的其他路径。(该路径在默认路径之前查找)  移植程序时的经常碰到需要使用一些特定的动态库,而这些编译好的动态库放在我们自己建立的目录里,这时可以将这些目录设置到LD_LIBRARY_PATH中。  当执行函数动态链接.so时,如果此文件不在缺省目录下‘

2017-09-11 22:04:02 368

原创 MySql教程Link

http://www.runoob.com/mysql/mysql-like-clause.html

2017-09-01 10:35:21 882

原创 Google StyleGuide 链接

http://zh-google-styleguide.readthedocs.io/en/latest/

2017-08-27 23:10:25 220

原创 C++11 Future

#include #include #include #include std::mutex gmutex;class Thread{public: Thread():_future(std::async(std::launch::async,std::bind(&Thread::Run, this))) {} virtual ~Thread() {} virtual void

2017-08-16 00:03:06 349

原创 Linux ccache加速C/C++编辑

ccache(“compiler cache”的缩写)也是一个编译器驱动器。第一趟编译时ccache缓存了GCC的“-E”输出、编译选项以及.o文件到$HOME/.ccache。第二次编译时尽量利用缓存,必要时更新缓存。所以即使"make clean; make"也能从中获得好处。ccache是经过仔细编写的,确保了与直接使用GCC获得完全相同的输出。ccache工具会高速缓存编译生成的信息,并

2017-08-14 00:44:04 1225

原创 Linux查看端口占用

第一步:使用netstat -apn 查看占用端口的进程第二步:Linux每创建一个进程都会在proc目录下创建和进程号对应的目录,进入目录用ll即可查看进程的启动位置

2017-08-05 16:01:44 298

转载 Linux 块设备驱动

链接:http://m.blog.csdn.net/article/details?id=51585490刚接触一下,发现作者的代码写错了,改一点点,总之受益匪浅#include #include #include #include #include #include static int sampleblk_major;#define SAMPLEBLK_MINOR 1

2017-02-04 09:58:22 559

转载 Linux命令之查看cpu个数_核数_内存总数

http://blog.csdn.net/cgwcgw_/article/details/10000053cpu个数cat /proc/cpuinfo | grep "physical id" | uniqcpu核数cat /proc/cpuinfo | grep "cpu cores" | uniq内存总数cat /proc/meminfo | grep MemT

2017-01-19 12:08:41 8876

转载 C/C++数据对齐

转载:http://www.cnblogs.com/graphics/archive/2010/08/12/1797953.html为了避免混淆,做如下规定,以下代码若不加特殊说明都运行于32位平台,结构体的默认对齐值是8,各数据类型所占字节数分别为char占一个字节int占四个字节double占八个字节。两个例子请问下面的结构体大小是多少?struct T

2017-01-11 15:20:52 324

转载 c/c++ struct 内存对齐

为了让CPU能够更舒服地访问到变量,struct中的各成员变量的存储地址有一套对齐的机制。这个机制概括起来有两点:第一,每个成员变量的首地址,必须是它的类型的对齐值的整数倍,如果不满足,它与前一个成员变量之间要填充(padding)一些无意义的字节来满足;第二,整个struct的大小,必须是该struct中所有成员的类型中对齐值最大者的整数倍,如果不满足,在最后一个成员后面填充。各种类型的

2017-01-11 15:15:22 551

大规模分布式存储系统:原理解析与架构实战.杨传辉.pdf

诸君放心,绝对高清。 大规模分布式存储系统:原理解析与架构实战.pdf,概况介绍了分布式存储系统的基本原理、架构,可以帮助您对这一领域达到一定的了解。

2018-05-11

空空如也

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

TA关注的人

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