自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 Docker和k8s的区别与介绍

Docker和k8s的区别与介绍 - 菜鸟的日记 - 博客园

2021-09-13 15:49:20 273

转载 C++ 线程池的实现和使用

线程池描述池式结构  在计算机体系结构中有许多池式结构:内存池、数据库连接池、请求池、消息队列、对象池等等。  池式结构解决的主要问题为缓冲问题,起到的是缓冲区的作用。 线程池  通过使用线程池,我们可以有效降低多线程操作中任务申请和释放产生的性能消耗。特别是当我们每个线程的任务处理比较快时,系统大部分性能消耗都花在了pthread_create以及释放线程的过程中。那既然是这样的话,何不在程序开始运行阶段提前创建好一堆线程,等我们需要用的时候只要去这一堆线程中领一个线程,用完了再放回

2021-08-26 15:24:23 4214 1

转载 c++ IO多路复用

1. 什么是IO多路复用一句话解释:单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力。2. 解决什么问题说在前头应用程序通常需要处理来自多条事件流中的事件,比如我现在用的电脑,需要同时处理键盘鼠标的输入、中断信号等等事件,再比如web服务器如nginx,需要同时处理来来自N个客户端的事件。逻辑控制流在时间上的重叠叫做并发而CPU单核在同一时刻只能做一件事情,一种解决办法是对CPU进行时分复用(多个事件流将CPU切割成多个时间片,不同事件流的时间片交替进行)。在计算机.

2021-08-24 10:45:17 2063

原创 计算机网络关键概念理解

在平常配置电脑IP或者配置虚拟机网络的时候,总会遇到网关、DNS、DHCP、网桥、NAT等这些名词,下面一一进行介绍:DNS概念域名系统(英文:DomainNameSystem,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。域名系统(Domain Name System,DNS)是Internet上解决网上机器命名的一种系统。就像拜访朋友要先知道别人家怎么走一样,Internet上当一台主机要访问另外一台主机时,必须首先获..

2021-08-16 16:08:42 490

原创 C++ 指针与引用

C++指针详解_YoungYangD的博客-CSDN博客_c++指针C/C++指针详解之基础篇(史上最全最易懂指针学习指南!!!!) - 灰信网(软件开发博客聚合) (freesion.com)C语言指针讲解(史上最通俗最全面最经典)_粘衣_乱飞的博客-CSDN博客_c语言指针通俗理解C++ 引用以及引用与指针的区别_YoungYangD的博客-CSDN博客_引用与指针的区别C++数组的详细解析_YoungYangD的博客-CSDN博客_c++数组C++中引用和指针的区别_Listeni

2021-08-13 15:25:31 75

原创 C++ googletest的使用

概念介绍什么是gtestgtest是一个跨平台的(Liunx、Mac OS X、Windows、Cygwin、Windows CE and Symbian)C++单元测试框架,由google公司发布。gtest是为在不同平台上为编写C++测试而生成的。它提供了丰富的断言、致命和非致命判断、参数化、”死亡测试”等等。TEST宏TEST(test_case_name, test_name)TEST_F(test_fixture,test_name) //多个测试场景需要相同数据配置的情况

2021-08-12 17:47:27 1091 1

转载 C++ Assert()断言机制原理以及使用

定义MSDN原文如是说:Evaluates an expression and, when the result is false, prints a diagnostic message and aborts the program.(判断一个表达式,如果结果为假,输出诊断消息并中止程序。)void assert( int expression);参数:Expression (including pointers) that evaluates to nonzero o...

2021-08-11 19:34:43 328

转载 面向对象和面向过程的理解

概念面向对象 (Object Oriented,OO) 的思想对软件开发相当重要,它的概念和应用甚至已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD 技术、人工智能等领域。面向对象是一种 对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。面向过程 (Procedure Oriented) 是一种 以过程为中心 的编程思想。这些都是以什么正在发生为主要目标进行编程,不同于面向对象的是谁在受影响。与面向对象明显的不同就是

2021-08-11 14:28:45 307

转载 C++ 结构体与类

概述之前只知道在C++中类和结构体的区别只有默认的防控属性(访问控制)不同,struct是public的,而class是private的。但经过上网查资料才发现,除了这个不同之外,还有很多的知识点需要掌握。下面就听我一一道来~1、首先比较一下C中的结构体和C++中的结构体区别C++中的struct是对C中的struct进行了扩充,所以增加了很多功能,主要的区别如下图所示:上面罗列了在声明时的区别,在使用的过程中也有区别:在C中使用结构体时需要加上struct,或者对结构体使用typ

2021-08-10 15:41:44 336

转载 pthread_join/pthread_exit的用法解析

pthread_join/pthread_exit官方概念:函数pthread_join用来等待一个线程的结束。函数原型为:  extern int pthread_join __P ((pthread_t __th, void **__thread_return));  第一个参数为被等待的线程标识符,第二个参数为一个用户定义的指针,它可以用来存储被等待线程的返回值。这个函数是一个线程阻塞的函数,调用它的线程将一直等待到被等待的线程结束为止,当函数返回时,被等待线程的资源被收回。一个线程的

2021-08-09 15:17:20 2385 1

转载 void和void*的定义及用法

voidvoid最常见的用法,就是在函数中限定函数的参数和返回值的 void draw(void); 表明函数draw没有参数也没有返回值,void在别的的地方的应用我也没见过;实际上,如果把void 和int,char,double等类型放到一起理解的话,首先还是那句揭示本质的话:变量类型就是固定大小内存块的别名,那么void占用多大内存呢,编译器并没有定义void占用多大内存,所以对于void var; 这样的定义,编译器自然是不允许的,在vs中的错误提示是:不允许使用不完整的类型。void

2021-08-09 14:47:21 462

转载 C++ template模板

定义理解1、模板是泛型编程的基础,泛型编程即以一种独立于任何特定类型的方式编写代码。2、模板是c++支持参数化多态的工具,使用模板可以使用户为类或者函数声明一种一般模式,使得类中的某些数据成员或者成员函数的参数、返回值取得任意类型。因此可以说,模板是一种对类型进行参数化的工具。3、模板是创建泛型类或函数的蓝图或公式。库容器,比如迭代器和算法,都是泛型编程的例子,它们都使用了模板的概念。每个容器都有一个单一的定义,比如向量,我们可以定义许多不同类型的向量,比如vector <int&gt..

2021-08-06 11:04:07 149

原创 C++文件操作

fstream标准库从文件读取流和向文件写入流需要用到 C++ 中另一个标准库fstream,它定义了三个新的数据类型:fstream标准库 数据类型 描述 ofstream 该数据类型表示输出文件流,用于创建文件并向文件写入信息。 ifstream 该数据类型表示输入文件流,用于从文件读取信息。 fstream 该数据类型通常表示文件流,且同时具有 ofstream 和 ifstream 两种功能,这意味着它可以创建文件,向文件写入信息,从文件读取信息。 .

2021-08-05 17:10:11 889

转载 vdbench使用

简介vdbench是一个 I/O 工作负载生成器,用于验证数据完整性和度量直接附加和网络连接的存储的性能。它是一个免费的工具,容易使用,而且常常用于测试和基准测试。可以使用vdbench测试磁盘和文件系统的读写性能。名词解释vdbench中常用的一些名词解释:HD 主机定义SD 存储定义WD 工作负载定义RD 运行定义FSD 文件系统存储定义FWD 文件工作负载定义安装和配置linux下配置vdbench(1)下载Vdbench...

2021-07-20 15:26:32 4312

原创 CMake使用

原理CMake是一种跨平台编译工具,比make更为高级,使用起来要方便得多。CMake主要是编写CMakeLists.txt文件,然后用cmake命令将CMakeLists.txt文件转化为make所需要的makefile文件,最后用make命令编译源码生成可执行程序或共享库(so(shared object))。使用步骤1、cmakecmake 指向CMakeLists.txt所在的目录,例如cmake ..表示CMakeLists.txt在当前目录的上一级目录。cmake后会生成很多..

2021-07-16 16:18:38 79

转载 ceph源码阅读之AioCompletion回调机制分析

Aio即Async IO,AioCompletion即Async Io Completion,也就是Async IO完成时的回调处理制作,librados设计AioCompletion就是为了提供一种机制对Aio完成时结果码的处理。而处理函数则由使用者来实现。设计librados设计了两个类:AioCompletion、AioCompletionImpl类的关系图如下:从上面可以看出,AioCompletion是librados设计开放的库API,真正的设计逻辑AioComplet...

2021-07-14 17:42:32 566

转载 C 字节对齐

什么是字节对齐现代计算机中内存空间都是按照字节(byte)划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序地一个接一个地排放,这就是对齐.字节对齐的好处为了提高效率,计算机从内存中取数据是按照一个固定长度的。以32位机为例,它每次取32个位,也就是4个字节(每字节8个位)。字节对齐有什么好处?以int型数据为例,如果它在内存中存放的位置按4字节对齐,也就是说1个int

2021-07-14 16:04:35 103

原创 块存储、文件存储、对象存储

什么是文件存储?文件存储也称为文件级存储或基于文件的存储,且正如您所想:数据会以单条信息的形式存储在文件夹中,正如您将几张纸放入一个马尼拉文件夹中一样。当您需要访问该数据时,您的计算机需要知道相应的查找路径。(注意,这可能会是一条蜿蜒冗长的路径。)存储在文件中的数据会根据数量有限的元数据来进行整理和检索,这些元数据会告诉计算机文件所在的确切位置。它就像是数据文件的库卡目录。请试想一下塞满文件柜的储藏室。每个文档都会按照某种类型的逻辑层次结构来排放 ——按文件柜、抽屉、文件夹,然后再是纸张。“分层

2021-07-09 15:35:07 11338

原创 git使用问题汇总

1、提示“warning: LF will be replaced by CRLF”一、发现问题windows平台下使用git add,git deploy 文件时经常出现“warning: LF will be replaced by CRLF” 的提示。网上很多解决办法提到:设置core.autocrlf=false,windows也用LF换行。除了记事本,其他编辑器都可以正常编辑。而没有给出具体原因和分析,现在加以补充。二、分析问题格式化与多余的空白字符,特别是在跨平台情况下

2021-06-28 15:13:43 182

原创 VMware安装CentOs虚拟机

<DT><A HREF="https://blog.csdn.net/zz603976046/article/details/77189706" ADD_DATE="138183687999">VMware虚拟机NAT模式的具体配置_江湖中已没了哥的专栏-CSDN博客</A><DT><A HREF="https://developer.aliyun.com/mirror/" ADD_DATE="138183687999">阿里巴巴开源镜像站-OP

2021-06-11 10:17:09 151 1

转载 Ceph主要概念

目录1 整体架构介绍1.1 总体介绍1.2 整体架构2 集群管理2.1 Monitor2.2 心跳管理3 数据读写3.1 OSD3.2 读写流程3.3 POOL和PG3.4 CRUSH算法3.4.1 Straw算法3.5 ObjectStore模块3.5.1 FileStore3.5.2 Bluestore4...

2021-06-10 15:24:48 4399

转载 VMware虚拟机三种网络模式详解

虚拟机网络连接方式安装好虚拟机以后,在网络连接里面可以看到多了两块网卡:其中VMnet1是虚拟机Host-only模式的网络接口,VMnet8是NAT模式的网络接口。虚拟机常见有三种网络连接方式:如下图:1. Bridged(桥接模式)  在桥接模式下,VMware虚拟出来的操作系统就像是局域网中的一独立的主机,它可以访问网内任何一台机器。不过你需要空闲的IP地址,并且需要手工为虚拟系统配置IP地址、子网掩码,而且还要和宿主机器处于同一网段,这样虚拟系统才...

2021-06-08 15:39:01 1929

转载 虚拟机NAT模式配置静态IP以及DNS

虚拟机NAT模式配置静态IP以及DNSstep1:配置虚拟机网络,取消勾选DHCP,点击NAT设置,然后记住网关IPstep2:配置VMnet8,IP处于同一网段并且配置网关step3:linux配置在/etc/sysconfig/network-scripts目录下设置对应的网口,设置为静态IP并且开机启动,同时设置DNS然后重启网络服务,能ping通8.8.8.8,证明已经可以连外网了,能ping通网站,证明DNS也设置好了,如果ping不同,请检查...

2021-06-08 15:38:51 1262

原创 Edge无法登录问题解决

修改DNS服务器为如下所示即可:该为微软的DNS服务器IP主用:4.2.2.1备用:4.2.2.2

2021-06-07 10:25:07 2733

原创 VSCode 中进行 C++ 编译和调试相关配置

c_cpp_properties.json - 编译环境相关的设置  该文件用于指定一般的编译环境,包括头文件路径,编译器的路径等。通过 Ctrl + Shift + p 打开命令行,键入关键字 "C++",在下拉菜单中选择 "C/C++ Edit configuration",系统即自动在 .vscode 目录下创建c_cpp_properties.json 文件,供用户进行编译方面的环境配置。windows默认配置:{ "configurations": [ {.

2021-06-03 14:53:05 1308

原创 编译ceph源码

从github下载源码,要加上–recursive参数,不然ceph源码内的很多子程序无法下载git clone --recursive https://github.com/ceph/ceph.git选择对应版本,跳到源码根目录,用git tag显示已有的版本,然后git checkout v10.2.3跳到我们要编译的版本下载依赖并开始编译./install-deps.sh./autogen.sh./configuremake注意:最后make编译的过程中,如果遇到编译器错误,可以添加-

2021-06-02 16:52:51 2170 1

原创 git常用操作

分支gua查看分支:git branch创建分支:git branch <name>切换分支:git checkout <name>创建+切换分支:git checkout -b <name>合并某分支到当前分支:git merge <name>删除分支:git branch -d <name> ...

2021-06-01 19:19:44 2305

原创 配置git遇到问题记录

昨天还可以git push代码到远程仓库,今天git push时报了这个错:fatal: unable to access 'https://github.com/.......': OpenSSL SSL_read: Connection was reset, errno 10054产生原因:一般是这是因为服务器的SSL证书没有经过第三方机构的签署,所以才报错参考网上解决办法:解除ssl验证后,再次git即可git config --global http.sslVerify "false

2021-05-31 15:15:33 303

原创 如何写自己的sysfs接口

Linux设备模型之kobject每个在内核中注册的kobject都对应于sysfs文件系统中的一个目录。所以要了解sysfs接口必须了解kobject。随着Linux内核的发展壮大,其支持的设备也越来越多,但一直没有一个很好的方法来管理慢慢增多的设备驱动。为了能够在内核中提供统一的机制来对设备进行分类,同时在更高的功能层面上描述这些设备,并使得这些设备对用户空间可见。从2.6开始,Linux内核引入一个新的设备模型来对系统结构做一般性的抽象描述,可以用于支持不同的任务需求,并提供了用户空间访...

2021-04-08 19:56:23 519

原创 sysfs接口例子

例程:sysfs_example.c#include <linux/module.h>#include <linux/types.h>#include <linux/kobject.h>static ssize_t sysfs_read(struct kobject *kobj, struct kobj_attribute *attr, char *buf){ return sprintf(buf, "%s\n", "sysfs test...

2021-04-08 19:56:01 596

原创 linux下查找文件

在使用linux时,经常需要进行文件查找。其中查找的命令主要有find和grep。两个命令是有区的。区别:(1)find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等。(2)grep是根据文件的内容进行查找,会对文件的每一行按照给定的模式(patter)进行匹配查找。一.find命令基本格式:find path expression1.按照文件名查找(1)find / -name httpd.conf  #在根目录下查找文件h..

2021-04-08 19:55:34 219 1

原创 linux反汇编定位死机日志

1、查看死机日志例如:[64591.912774] <86>Call Trace:[64591.915861] <82> [<ffffffff815b9be5>] ? __schedule+0x2c5/0x790[64591.921996] <82> [<ffffffffa07f0b50>] ? handle_active_stripes+0x300/0x300 [raid456][64591.929966] <82> [

2021-04-08 19:55:07 557

原创 systemtap工具使用介绍

简介 systemtap 是利用Kprobe 提供的API来实现动态地监控和跟踪运行中的Linux内核的工具,相比Kprobe,systemtap更加简单,提供给用户简单的命令行接口,以及编写内核指令的脚本语言。对于开发人员,systemtap是一款难得的工具内核调试工具。安装说明首先确定内核版本:uname -r: 3.10.0-123.el7.x86_64对应于我们使用的内核版本,需要安装以下安装包:kernel-debug-debuginfo-3.10.0-123...

2021-04-08 19:54:30 1585 1

原创 利用systemtap脚本打印变量或参数

1、获取数据结构成员 比如数据结构如下:root@jusse ~/develop# cat -n cc_stap_test.c #include <stdio.h> typedef struct str { int len; char *data; } str_t; typedef struct policy { str_t name; int id; }...

2021-04-08 19:53:50 1744 1

原创 linux段错误解决

1. 段错误是什么一句话来说,段错误是指访问的内存超出了系统给这个程序所设定的内存空间,例如访问了不存在的内存地址、访问了系统保护的内存地址、访问了只读的内存地址等等情况。这里贴一个对于"段错误"的准确定义(参考Answers.com):A segmentation fault (often shortened to segfault) is a particular error condition that can occur during the operation of computer so

2021-04-08 19:52:43 2209 1

原创 利用宏定义打印不同级别日志

#define dbgDebug(format, ...)#define dbgDebug(format, ...) printf("{%s, %d--debug} : "format, __FUNCTION__, __LINE__, ##__VA_ARGS__)#define dbgInfo(format, ...) printf("{%s, %d--info} : "format, __FUNCTION__, __LINE__, ##__VA_ARGS__)#define dbgWarn(f.

2021-03-19 21:39:46 303

原创 ceph虚拟机搭建(单节点、多节点)

步骤1.修改主机名(即节点名)1)sed -i ‘/HOSTNAME/d’ /etc/sysconfig/networkecho “HOSTNAME=主机名” >> /etc/sysconfig/networkcat /etc/sysconfig/network2)echo “IP地址 主机名” >> /etc/hostscat /etc/hosts3)hostname node1hostname -f重启 reboot[root@localhos.

2021-03-18 16:22:07 1771

原创 centos7最小化安装配置网络和安装必要软件

配置网络centos7最小安装后,不能够上网,需要进行网络配置进入到网络配置文件目录cd /etc/sysconfig/network-scripts默认网卡配置为ifcfg-eth33如果不能确定,使用ip addr 命令(最小化安装CentOS7后,想查看IP,发现ifconfig命令是不好使得。在最小化的CentOS7中,查看网卡信息的命令应该是ip addr)进行查看使用 vi ifcfg-eth33命令打开文件主要编辑项为下述红色字体部分[root@localh...

2021-03-17 22:15:59 705

原创 ceph环境搭建

Centos7单节点搭建Ceph服务器(一建部署)https://blog.csdn.net/h106140873/article/details/90201379CentOS 7部署 Ceph分布式存储架构https://blog.csdn.net/h106140873/article/details/90143993虚拟机使用ceph-deploy安装cephhttps://www.cnblogs.com/luxiaodai/p/9951199.html搭建ceph集群(单节点)

2021-03-17 17:44:55 286

原创 Python中super函数的用法

https://www.cnblogs.com/szy13037-5/articles/9562639.htmlhttps://www.cnblogs.com/lovemo1314/archive/2011/05/03/2035005.html

2021-03-17 16:58:12 45

空空如也

空空如也

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

TA关注的人

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