自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(129)
  • 资源 (2)
  • 收藏
  • 关注

转载 队列深度对磁盘IOPS的影响

增加队列深度,可以看到IOPS不会随着队列深度的增加而一直增加,达到一定值后会有所下降。

2022-07-21 10:09:31 1199

转载 ioctl函数详细说明

本函数影响由fd参数引用的一个打开的文件。#include<unistd.h>intioctl( int fd, int request, .../* void *arg */ );返回0:成功 -1:出错第三个参数总是一个指针,但指针的类型依赖于request参数。我们可以把和网络相关的请求划分为6类:套接口操作文件操作接口操作ARP高速缓存操作路由表操作流系统下表列出了网络相关ioctl请求的request参数以...

2022-03-24 16:50:18 881

转载 Linux系统物理CPU、逻辑CPU和CPU核数的区别

㈠ 概念 ① 物理CPU 实际Server中插槽上的CPU个数 物理cpu数量,可以数不重复的 physical id 有几个 ② 逻辑CPU Linux用户对 /proc/cpuinfo 这个文件肯定不陌生. 它是用来存储cpu硬件信息的 信息内容分别列出了process...

2022-03-17 10:13:15 564

转载 通用平台下突破时延短板 XSKY利用DPDK增强Ceph网络效能

业界共识,网络层是分布式存储 "性能木桶的最短板"。在存储领域的概念中,一般有两张网络--用户应用与存储对接的"接入网络"和存储系统内部交换数据的"数据分布网络"。传统存储的"数据分布网络"通常用SAS总线或Infiniband网络实现,牺牲的是水平扩展能力和通用硬件特性,换来较低的时延和相对较少的中央处理器负担。而在主流的分布式存储系统中,为了整个集群的硬件通用一致性,和接入部分一样,通常采用基于TCP/IP的以太网进行数据分布工作。基于Linux内核的通用TCP/IP协议栈在10Ge以上的高带宽条件下,

2022-03-11 17:26:09 548

转载 DPDK 全面分析

高性能网络技术#随着云计算产业的异军突起,网络技术的不断创新,越来越多的网络设备基础架构逐步向基于通用处理器平台的架构方向融合,从传统的物理网络到虚拟网络,从扁平化的网络结构到基于 SDN 分层的网络结构,无不体现出这种创新与融合。这在使得网络变得更加可控制和成本更低的同时,也能够支持大规模用户或应用程序的性能需求,以及海量数据的处理。究其原因,其实是高性能网络编程技术随着网络架构的演进不断突破的一种必然结果。C10K 到 C10M 问题的演进#如今,关注的更多是 C10M 问题(即单机 1

2022-03-11 14:53:06 2417 1

转载 网卡工作原理

1、分析网卡的工作原理即是分析网卡的驱动程序2、为了屏蔽网络环境中物理网络设备的多样性,Linux对所有的设备进行抽象并定义了一个统一的概念,称之为接口3、一个网络接口被看作是一个发送和接收数据包的实体。4、对于每个网络接口,都用一个net_device的数据结构来表示。5、所有被发送和接收的包都用数据结构sk_buff表示6、要发送数据时,网络系统将分局系统路由表选择相应的网络接口进行数据传输;当接收数据包时,通过驱动程序登记的中断服务程序进行数据的接口处理。7、Linux网络驱动程序从上到下

2022-03-11 14:34:48 2644

转载 内核模块加载与卸载命令

Linux操作系统中模块操作相关命令解释lsmod 查看已经安装好的模块, 也可以查看/proc/modules文件的内容. 实际上,lsmod读命令就是通过查看/proc/modules的内容来显示模块信息的.查看某个模块是否安装[root@localhost ~]# lsmod | grep "mii"mii 9409 1 pcnet32modinfo 显示模块信息 1 2 3 4 5 6 .

2022-03-10 10:48:24 1458

转载 网卡bonding模式 - bond0、1、4配置

网卡bonding简介网卡绑定就是把多张物理网卡通过软件虚拟成一个虚拟的网卡,配置完毕后,所有的物理网卡的ip和mac将会变成相同的。多网卡同时工作可以提高网络速度,还可以实现网卡的负载均衡、冗余。bonding模式1round-robin(mode=0)轮转策略,轮流在每一个slave网卡上发送数据包,提供负载均衡和容错能力。 2active-backup(mode=1)主备策略,只有一个slave被激活,只有当active的slave的接口down时,才会...

2022-03-09 20:47:00 7523

转载 socket编程学习(addr设置)

sockaddr结构体struct sockaddr{  sa_family_tsa_family; //地址族,最常用的是"AF_INET"(IPV4)和"AF_INET6"(IPV6);   char sa_data[14];   //包含套接字中的目标地址和端口信息;};sockaddr的缺陷:sa_data把目标地址和端口信息混在一起了sockaddr_in 结构体sockaddr_in结构体解决了sockaddr的缺陷,把port和addr 分开储存在两...

2022-03-03 11:21:27 2606

原创 VM虚拟机中Linux扩展磁盘空间的方法

2022-02-15 15:30:15 8057 7

转载 rdma 编程详解

1.相关名词解释1.1 rdma-core指开源RDMA用户态软件协议栈,(用户空间的驱动)包含用户态框架、各厂商用户态驱动、API帮助手册以及开发自测试工具等。rdma-core在github上维护,我们的用户态Verbs API实际上就是它实现的。https://github.com/linux-rdma/rdma-core1.2 kernel RDMA subsystem指开源的Linux内核中的RDMA子系统,(内核空间的驱动)包含RDMA内核框架及各厂商的驱动。RDMA子系统.

2022-02-14 18:40:43 2781

转载 【RDMA】ibv_poll_cq()

描述ibv_poll_cq()从完成队列(CQ)轮询WC(工作完成),非阻塞函数。[工作完成] 表示 WQ(工作队列)中的WR(工作请求) 以及与CQ相关联的所有已发布到该工作队列的未发出信号的WR(工作请求)均已完成。(A Work Completion indicates that a Work Request in a Work Queue, and all of the outstanding unsignaled Work Requests that posted to that W

2022-02-10 10:38:16 1361

转载 关于centos7 No route to host 报错的解决方法。

如图所示:centos7 No route to host 报错,解决方法如下:使用 ping 192.168.1.113 结果是正常的,其实出现上面的这种原因是防火墙没有关闭。centos7 和centos6防火墙是不一样的:centos7是 firewallcentos6是 iptablesfirewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)启动一个服务:systemctl start fir..

2022-01-27 15:53:58 14317 1

转载 【linux】查看Linux系统版本信息的几种方法

一、查看Linux内核版本命令(两种方法):1、cat /proc/version2、uname -a二、查看Linux系统版本的命令(3种方法):1、lsb_release -a,即可列出所有版本信息:这个命令适用于所有的Linux发行版,包括RedHat、SUSE、Debian…等发行版。2、cat /etc/redhat-release,这种方法只适合Redhat系的Linux:[root@S-CentOS home]# cat /etc/redhat-rele

2022-01-26 00:02:56 135763 1

原创 build error: ‘ParseCommandLineFlags‘ is not a member of ‘google‘

将google修改为gflags即可#include <gflags/gflags.h>int main(int argc, char* argv[]) { gflags::ParseCommandLineFlags(&argc, &argv, true); brpc::Server server; test::PerfTestServiceImpl perf_test_service_impl; if (server.AddServi...

2022-01-24 19:26:14 1402

转载 超全整理!Linux性能分析工具汇总合集

出于对Linux操作系统的兴趣,以及对底层知识的强烈欲望,因此整理了这篇文章。本文也可以作为检验基础知识的指标,另外文章涵盖了一个系统的方方面面。如果没有完善的计算机系统知识,网络知识和操作系统知识,文档中的工具,是不可能完全掌握的,另外对系统性能分析和优化是一个长期的系列。本文档主要是结合Linux 大牛,Netflix 高级性能架构师 Brendan Gregg 更新 Linux 性能调优工具的博文,搜集Linux系统性能优化相关文章整理后的一篇综合性文章,主要是结合博文对涉及到的原理和性能测试

2021-08-24 11:52:26 1691

原创 5G网络切片

到底什么叫5G网络切片http://www.360doc.com/content/17/0326/02/41444591_640175003.shtml一篇文章看懂,5G网络切片是什么?https://baijiahao.baidu.com/s?id=1632027918857232513&wfr=spider&for=pc

2020-09-17 20:31:35 322

转载 一句话解释IPD的核心内容

1.IPD是什么?集成产品开发(Integrated Product Development,IPD)是一套先进的、成熟的研发管理思想、模式和方法。IPD is a systematic approach to product development that achieves atimely collaboration of necessary disciplines throughout the product life cycleto better satisfy customer� ne..

2020-05-20 15:04:52 4896

转载 HTTPS实战之单向验证和双向验证

转载自:https://mp.weixin.qq.com/s/UiGEzXoCn3F66NRz_T9crA原创:涛哥coding涛6月9日作者对https 解释的入目三分啊(全文太长,太懒不想看,-_-b 那就直接拉到底部看总结 )前面的文章中,提到了,https是在TCP协议与http之间加了一个控制安全传输的SSL协议,也就是说,直接运行在TCP之上的HTTP是普通的HTTP,运行在SSL/TLS上的HTTP则是HTTPS。这几个协议在计算机网络的OSI七层模型中的位置如下表所示:...

2020-05-13 17:56:12 1138

转载 CEPH可靠性的计算方法分析

在开始正文之前,首先要感谢UnitedStack工程师朱荣泽对这篇博文的大力帮助和悉心指教。本文主要针对UnitedStack公司在巴黎峰会上对Ceph可靠性的计算方法(https://www.ustack.com/blog/build-block-storage-service/)做了一个更明确的分析和阐述,供对此话题感兴趣的朋友一起来讨论、研究,文章中如果有不当之处,还请各位高人指教。什么情况下数据会丢失?这个话题的另外一种提法就是存储的可靠性,所谓存储的可靠性最基本的一点就是数...

2020-05-09 18:02:31 1381

转载 bluestore 流程解析

1.整体流程图片发自简书App图中展示了流程中的关键路径及涉及到的线程与队列。下面详细阐述工作流程。重点关注:状态切换;kv存储数据的GC时机1.1 queue_transactionsqueue_transactions是store统一的入口,各个存储引擎如filestore、kvstore、bluestore都得实现这个入口。在queue_transa...

2020-04-26 16:32:07 861

转载 Linux 查看进程消耗内存情况总结

在Linux中,有很多命令或工具查看内存使用情况,今天我们来看看如何查看进程消耗、占用的内存情况,Linux的内存管理和相关概念要比Windows复杂一些。在此之前,我们需要了解一下Linux系统下面有关内存的专用名词和专业术语概念:物理内存和虚拟内存物理内存:就是系统硬件提供的内存大小,是真正的内存,一般叫做内存条。也叫随机存取存储器(random access memory,RAM...

2020-04-26 15:42:40 642

转载 转载ceph IO切割成对象和对象名的组成

看到很多关于oid-->pgid-->osdid映射的文章。 但是 读写IO到-->oid的映射,却没有相关的文章。我认为一个完整的映射关系应该是这样的:read write IO---->oid---->pgid---->osdid 。下面我们重点研究下read write IO---->oid的映射关系。一, 读写IO...

2020-04-26 15:41:49 233

转载 Red Hat Ceph存储—《深入理解Ceph架构》

目录第1章 概览第2章 存储集群架构2.1 存储池2.2 身份认证2.3 PG(s)2.4 CRUSH2.5 I/O操作  2.5.1 副本I/O  2.5.2 纠删码I/O2.6 自管理的内部操作  2.6.1 心跳  2.6.2 同步  2.6.3 数据再平衡与恢复  2.6.4 校验(或擦除)2.7 高可用  ...

2020-04-26 15:40:22 247

转载 Linux下原生异步IO接口libaio介绍

在调研 fio的实现时,接触了libaio的使用方式。由于fio 的io engine发送及接受数据的流程是按照liaio库的方式进行的。所以初步使用了libaio。现总结如下。几点说明本文的重点在于libaio的使用方式。所以对什么是同步、异步及阻塞、非阻塞IO,请参考相应资料。比较权威的资料是Richard Stevens的“UNIXNetwork Programming Volum...

2020-04-26 15:38:54 2074

转载 IO - 同步,异步,阻塞,非阻塞 (亡羊补牢篇)

当你发现自己最受欢迎的一篇blog其实大错特错时,这绝对不是一件让人愉悦的事。《 IO - 同步,异步,阻塞,非阻塞 》是我在开始学习epoll和libevent的时候写的,主要的思路来自于文中的那篇link 。写完之后发现很多人都很喜欢,我还是非常开心的,也说明这个问题确实困扰了很多人。随着学习的深入,渐渐的感觉原来的理解有些偏差,但是还是没引起自己的重视,觉着都是一些小错误,无伤大雅。直到有...

2020-04-26 15:37:01 228

转载 Linux libaio 异步I/O简述

最近准备仔细看看innodb 异步I/O的实现,而在LINUX平台下Innodb中一般我们使用的都是libaio叫做LINUX NATIVE AIO,这有别于POSIX实现的AIO,因为以前对异步I/O并不熟悉,因为在很多LINUX 系统编程书籍上都没有介绍,而网上也是资料不多。当然其好处还是非常明显的,能够在使用O_DIRECT 打开文件的情况下,保证性能而不是消耗CPU资源在等待I/O落盘上,...

2020-04-26 15:35:38 686

转载 pread与pwrite使用

1 缘由在阅读seastar源码时发现有使用pread函数,这也是第一次认识pread函数,平时用read比较多。2 pread函数函数原型:#include <unistd.h>ssize_t pread(int fd, void *buf, size_t count, off_t offset);ssize_t pwrite(int fd, const ...

2020-04-26 15:34:20 1555

转载 Linux下原生异步IO接口Libaio的用法

Linux下原生异步IO接口Libaio的用法Posted on June 15, 2011 by Jian Zhoulibaio是linux下原生的异步IO接口。网上对其使用方法讨论较少,这里做个简单说明。libaio的使用并不复杂,过程为:libaio的初始化,io请求的下发和回收,libaio销毁。一、libaio接口libaio提供下面五个主要API函数:int io_se...

2020-04-26 15:33:20 1023

转载 维护ceph的15条关键命令

1、ceph osd tree2、ceph osd df3 ceph osd dump从osdmap中获取信息4 ceph pg dump从pgmap中获取信息5 ceph pg map pg_id找到osd列表6 ceph daemon osd.x helposd_enable_op_tracker=truedebug_optracker=5/57 ceph da...

2020-04-23 11:03:45 471

转载 Red Hat Ceph存储—《深入理解Ceph架构》

目录第1章 概览第2章 存储集群架构2.1 存储池2.2 身份认证2.3 PG(s)2.4 CRUSH2.5 I/O操作  2.5.1 副本I/O  2.5.2 纠删码I/O2.6 自管理的内部操作  2.6.1 心跳  2.6.2 同步  2.6.3 数据再平衡与恢复  2.6.4 校验(或擦除)2.7 高可用  ...

2020-04-23 11:02:45 300

转载 ceph 网络模块

代码入手方式:1. osd的网络通信messenger在old.h中定义,如下图所示2. 然后查看cluster_messenger的创建。3. 再来查看internal_messenger的由来,是osd构造函数赋值的。4. 最后看看ms_cluster的创建,在osd初始化的时候创建的。以上,就是cluster_messenger...

2020-04-23 11:01:16 469 1

转载 bluestore 流程解析

1.整体流程图片发自简书App图中展示了流程中的关键路径及涉及到的线程与队列。下面详细阐述工作流程。重点关注:状态切换;kv存储数据的GC时机1.1 queue_transactionsqueue_transactions是store统一的入口,各个存储引擎如filestore、kvstore、bluestore都得实现这个入口。在queue_transa...

2020-04-23 10:57:45 1402 1

转载 CRUSH算法的原理与实现

0. 前言本文主要面向对Ceph及分布式系统有一定了解基础的同学;新入坑的读者可以先从Ceph文档官网获取基本信息。1. 背景在分布式存储系统中,数据的位置存放规则一直是研究的热门话题之一。一般来说,系统中所有角色(Clients、Servers)需要有一个统一的数据寻址算法Locator,满足: Locator(ID) -> [Device_1, Device_2, De...

2020-04-14 20:45:27 1574

转载 SSD通俗原理简介

1. 什么是SSDSSD是Solid State Drive,即固态硬盘的缩写。目前主流的SSD是使用半导体闪存(Flash)作为介质的存储设备,SSD有别于HDD(Hard Disk Drive)机械硬盘。SSD诞生于上世纪70年代,最早的SSD使用RAM,RAM掉电数据就会丢失,价格也特别贵。后来出现了基于闪存的SSD,闪存掉电之后数据不丢失,flash SSD慢慢取代了RAM SSD...

2020-04-14 20:43:47 4518 1

转载 BlueStore-先进的用户态文件系统《二》-BlueFS

简介上一篇文章中,介绍了BlueStore的诞生背景、逻辑架构以及设计思想,提到了在BlueStore中元数据都是存放在RocksDB中的,BlueStore又实现了一个轻量级的文件系统BlueFS供RocksDB读写数据。在本篇文章中将会描述BlueFS的设计缘由和设计原理。为什么要BlueFS?BlueStore使用RocksDB来管理元数据,但是RocksDB本身并不支持对裸...

2020-04-14 18:00:16 522

转载 BlueStore-先进的用户态文件系统《一》

分布式存储系统通过将数据分散到多台机器上来充分利用多台机器的资源提高系统的存储能力,每台机器上的数据存放都需要本地的单机存储系统,它是整个分布式存储系统的基础,为其提供保障。设计高性能、高可靠的分布式存储系统离不开高效、一致、稳定、可靠的本地存储系统。ceph是目前业内比较普遍使用的开源分布式存储系统,实现有多种类型的本地存储系统;在较早的版本当中,ceph默认使用FileStore作为后端存...

2020-04-14 17:54:56 449

转载 Linux下使用 tc 模拟网络延迟和丢包

1、模拟延迟传输简介netem 与 tc: netem 是 Linux 2.6 及以上内核版本提供的一个网络模拟功能模块。该功能模块可以用来在性能良好的局域网中,模拟出复杂的互联网传输性能,诸如低带宽、传输延迟、丢包等等情况。使用Linux 2.6 (或以上) 版本内核的很多发行版 Linux 都开启了该内核功能,比如 Fedora、Ubuntu、Redhat、OpenSuse、CentOS、...

2020-04-11 14:51:57 890

转载 结构体中最后一个成员数组定义0个元素的意义

struct MyData { int nLen; char data[0]; }; 在结构中,data是一个数组名;但该数组没有元素;该数组的真实地址紧随结构体MyData之后,而这个地址就是结构体后面数据的地址(如果给这个结构体分配的内容大于这个结构体实际大小,后面多余的部分就是这个data的内容);这种声明方法可以巧妙的实现...

2020-04-11 14:51:23 408

转载 git stash 用法总结和注意点

常用git stash命令:(1)git stashsave "save message" : 执行存储时,添加备注,方便查找,只有git stash 也要可以的,但查找时不方便识别。(2)git stash list:查看stash了哪些存储(3)git stash show:显示做了哪些改动,默认show第一个存储,如果要显示其他存贮,后面加stash@{$num},比如...

2020-04-11 14:50:46 913

空空如也

空空如也

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

TA关注的人

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