自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 操作系统1

3、P2执行后,需要p(s1),释放2个信号量,V(s3)V(s4),P3执行需要s2,s3,s3为P操作,选择题都为P(s3)。4、P3执行后,释放2个信号量,V(s5)V(s6),P4执行需要2个P,上面是为s4固定,下方就是s5了,另一个就s6。2、P1执行后,释放2个信号量,V(s1)V(s2),P3执行需要P(s2),验证下方为s2,上方为s1。线程就是继承进程的可独立的调度,各自管理,改善进程一系列问题,进程切换的资源消耗、程序可并发执行。资源分配和请求都满足后执行结束,资源会回收,释放资源。

2024-04-08 11:30:09 455

原创 计算机组成结构2

最近排序是:184-182-187-176-199(187对比176和199分别距离是11和12),计算 |184-184|+|182-184|+|187-182|+|176-187|+|199-176|=0+2+5+11+23=41。,每个盘面多个同心圆,每个同心圆就是一个磁道,每个同心圆划分多个扇区,数据存放到上扇区中。90%几率命中读取cache时间为一次1ns,10%不命中读取内存数据时间1000ns,读取一次的平均时间?读取数据的时间=寻道时间+旋转时间+执行时间,寻道时间最长。

2024-04-04 22:34:44 976

原创 计算机组成结构1

若指令流水线把一条指令分为取指、分析和执行三部分的时间分别是T(取指)=2ns,T(分析)=2ns,T(执行)=1ns,则100条指令全部执行完毕需__203__ns?单指令流 + 多数据流 SIMD-------并行处理机,超级向量处理机。控制器:指令寄存器IR、程序计数器PC、地址寄存器AR、指令译码器ID。单指令流 + 单数据流 SISD -------单处理器。多指令流 + 单数据流 MISD-------不可实现。多指令流 + 多数据流 MIMD-------多处理器。CPU:运算器+控制器。

2024-04-03 15:17:27 538

原创 2023活了下来,活着就是见证自己的死亡

"说的没错,自己明白技术这条路到头了,但是心里的不服却不知道为何,可能是心理的上对自己咋混的那么差有所抱怨,混的好我也不用选择呀!不断从舒适区走出来很难,顾虑也变太多,想到房贷,想到养家糊口,恐惧顺着脚底一路到脑顶。有选择总比没有选择好,我算幸运的,还没有被淘汰出局,但是时刻准备着,从点切换到面,需要学习和思考的太多,我面临一个哲学问题。互联网寒冬,我再次面临选择,随着时间的流失,从之前的思想空白到现在的思想混乱,希腊德尔斐神庙门楣上写着"2、好坏之分,只有场景的不同,存在即有用。5、坚持问自己为什么?

2024-01-04 14:42:51 366

原创 稳定性、可靠性、可用性、灵活性、解耦性

稳定性、可靠性、可用性、灵活性、解耦性

2023-09-22 17:20:27 222

原创 iptables filter表

默认策略如果是ACCEPT,就是所谓的黑名单,通常都是做白名单,默认策略位DROP。所有策略没有匹配上,最后走的默认策略动作。控制数据包是否允许进出及转发。docker转发规则。

2023-06-13 14:14:54 178

原创 iptables 基础

格式:iptables [-t 表名] command 链名 [规则序号] 匹配条件 -j 执行动作 (默认不写表名为filter表)主要实现数据包的过滤、封包重定向和网络地址转换(NAT)等功能。不是所有的链都包含4张表,每个数据包经过各链的表进行匹配规则。表:针对链下面的类似规则属性进行汇总,便于管理。链:通过数据包的走向可以分为5种状态。

2023-06-02 17:00:20 623

原创 openstack 云主机分辨率问题

kvm 分辨率

2022-09-02 11:15:51 656 1

原创 性能篇:内存

内存相关概念虚拟内存:是一个逻辑概念,目的是为了便于程序的使用和系统的管理,虚拟内存会与物理内存形成映射关系常驻内存:当前处于主存中的内存匿名内存:无文件系统位置或者路径名的内存,进程堆和栈空间的内存都属于匿名内存(文件之外的使用内存)参考:https://www.jianshu.com/p/84d6d5c75c02分页:虚拟内存与物理内存映射他们使用页概念(固定大小,默认4kb),通过维护页表实现访问(每个进程各种维护一个页表,虚拟内存叫页,物理内存叫帧)分段:基于段

2022-05-19 16:35:52 663

原创 性能篇:CPU

CPU相关概念:处理器:物理芯片,一个或者多个核数:一个物理芯片上实现多个CPU功能,又称为芯片级多处理(chip-levelmultiprocessing,CMP)线程数:利用单个CPU中断间隙实现多线程,提升CPU效率,也就是我们说的开超线程(1*2)指令:一些列的命令,告诉CPU需要做什么操作,比如资源I/O、算术、逻辑控制。中断:中断是系统实现CPU能合理的服务计算机的资源,由于CPU中断和执行的快速,我们才能感觉到电脑上的程序都是同时运行的。硬中断:由硬件设备引发的中断,跟操作系统

2022-05-11 21:51:01 952

原创 mac实现sstp协议windows

安装软件:brew install sstp-client执行命令:sudo sstpc --log-stderr --cert-warn --user <user> --password <password> <server> usepeerdns require-mschap-v2 noauth noipdefault defaultroute refuse-eap noccpsudo一定要加上问题:这样拨号无法实现本地访问网络,默认路由都走拨号地址了

2022-02-12 20:05:50 1459 1

原创 2021思考、学习、丢弃

2021年转变:职业转行思考丢弃职业转行由于自己的起点低,所以我转行了2次,应该还有N次(未来)打工人不要看不起任何人,不论是什么职位,拿了多少钱,其实我们都是没有选择权的一批人,拿着自己的单位时间价值去换生存,而当今没有选择其实才更可怕,我经常会问同事也包括我自己,问他们有什么爱好吗?很多人一开始就有点懵,想了下我想养鱼,养猫、去旅游等等,我同事还是刚毕业没多久的,他们说了一句开玩笑的话说被生活磨平了,我也希望是一句玩笑,但当我自己想了很久后我也默许了,好像现在的爱好变成了要解脱什么。

2021-12-26 16:12:23 164

原创 OpenStack octavia LB负载均衡基础

octaviaoctavia 作为openstack的负载均衡方案,实现4层和7层的负载,自Pike版本替换了neutron自带的LB方案(Neutorn LBaaS)。基本对象loadbalancer:负载均衡器的服务对象,所有的配置、操作、客户端命令等等vip:作用在loadbalancer上,用于外部对内部的业务集群的访问入口listener:监听器对象就是一组负载规则,通过其配置外部对VIP访问的端口,算法,类型等等(haproxy的frontend 配置)pool:后端业务真实服务器

2021-12-23 16:58:36 3452

原创 OpenVSwitch 基础使用

OpenVSwitch 基础概念bridge代表的一个交换机,主机可以创建多个bridge,通过规则把bridge下的多个port数据转发ovs-vsctl add-br Bridge (del-br删除)创建网桥ovs-vsctl list-br 列出全部的网桥 - 网桥fail-mode - standalone:如果连接了控制器,网桥就变成openflow交换机,不然就变成普通交换机进行mac地址学习 - secure:不论是否连接控制器,都是openflow交换机,需要添

2021-11-23 15:05:00 1848

原创 OpenVSwitch 基础

OpenVSwitch简称ovs,是一个由纯软件实现的二层交换机功能,可以实现全部交换机的功能,二层交换、网络隔离、QoS、流量监控、vxlan等等,用于虚拟化场景下,配合sdn实现交换机的控制和转发分离,网络的自动化和可编程能力,能适应网络的架构快速变化。ovs的架构用户态ovs-vswitchd交换机的功能实现,vSwitch的守候进程daemon,包括一个支持流交换的Linux内核模块。ovsdb-server数据库用于保存ovs配置信息,ovs-vswitchd获取数据。

2021-11-11 15:57:54 3220 1

原创 python基础篇总结

理解编程语言是什么?语言是一种解决问题的思维方式,我们人类的语言和鸟类的语言又或者计算机的语言都是同等功能,为了获得交流去解决现有问题,而交流的本质就是数据,我们每天交流产生数据,并对数据做出决策,决定明天是否上班有可能数据来自明天有台风所以不能去上班。同样编写一个程序也是大致有数据和指令组成,数据可以是用户提供也可以是计算得出,最终由指令完成我们想要的结果输出。程序是由人编写,必然不会脱离我们对于他的理解标准规范语言规范是便于我们学习和理解,使计算机之间达成一致交流。就类似写中文字,先写左

2021-09-12 18:30:11 109

原创 python3 字符编码

机器识别的语言二进制(0和1))人类识别的语言中文、英文等等我们人类怎么才能跟机器交流?通过一张编码表把我们人类的每个字对于到机器识别的二进制h=1101000(十进制104)编码表编码表随着时间的的更新,出现了多个版本ASCII:数字 32–126 分配给了能在键盘上找到的字符GBK:基于上代,增加支持了中文Unicode:基于上代,支持了基本所有的语言(万国码)UTF-8:基于Unicode做了优化,优化区别了不同语言的占用字符个数(关系到容量的大小,从而可能导

2021-08-31 13:15:38 284

原创 debian 编译内核升级

内核版本源码包下载:https://mirrors.edge.kernel.org/pub/linux/kernel/wget https://mirrors.edge.kernel.org/pub/linux/kernel/v4.x/linux-4.19.188.tar.gztar -xvf linux-4.19.188.tar.gz -C /usr/src安装编译工具apt-get updateapt install -y automake make g++ bison flex libel

2021-07-26 16:53:44 526

原创 Ubuntu16.04单用户修改密码

Ubuntu16.04单用户修改密码具体步骤1、重启系统,按esc防止自动进入系统2、选择高级选项,回车3、选择带有recovery mode版本,按e进入编辑模式4、把从or recovery nomodeset后面的全部字段替换成 rw single init=/bin/bash5、修改密码,输入passwd回车,输入2次密码,提示更新成功就完成了6、强制重启,reboot -f...

2021-06-23 20:28:08 1067

原创 openstack 关于实例密码问题

实例的密码修改方式创建MV时修改密码运行中的MV修改密码创建MV时修改密码基于cloud-init实现配置的传递给MVconfigguration:可以实现初始化密码和安装软件等等,MV端通过cloud-init传入cloud-init有固定的语法的,但是要可以使用shell实现#cloud-configchpasswd: list: | root:123456 ubuntu:123456 expire: falsessh_pwauth: t

2021-04-30 17:39:07 1274 1

原创 ceph Crush map

Crush mapCRUSH map采用树状结构,最小叶子节点就是真实物理磁盘称为device,中间节点称为bucket,每个bucket可以是device集合,也可以是低一级的bucket集合,最上面还有一个root节点,代表集群的入口CRUSH hierarchy(层次结构):树型结构目录,决定故障域的范围(11个层级)CRUSH rule(规则):CRUSH rule决定如何从bucket中分配OSD,创建存储池可以指定ruleCRUSH hierarchy生成环境可以考虑这样的层级:数

2021-04-30 09:53:37 494

原创 openstack 关于磁盘性能问题

使用的工具:fio安装fioyum install libaio libaio-develwget https://brick.kernel.dk/snaps/fio-3.10.tar.gztar xf fio-3.10.tar.gz./configuremake && make install命令:fio -filename=/dev/vda -direct=1 -iodepth 1 -thread -rw=write -ioengine=libaio -bs=1024k

2021-04-22 15:22:05 737

原创 ansible Roles

Roles可以根据层次结构实现复杂场景的配置,roles就是通过分别将变量、文件、任务、模板及处理器放置于单独的目录中,并可以便捷的include它们的一种机制。实现代码的复用三层结构roles目录层级,roles项目目录,playbook运行文件project:项目目录,名称用于playbook的任务role指定功能目录:files:存放copy模块或script模块调用的文件tasks:存放模块任务文件vars:存储变量文件meta:用于定义此角色的特殊设定及其依赖关系

2021-04-20 16:37:25 113

原创 ansible 进阶

ansible 进阶使用template模板:实现配置文件的模板生成with_items:playbook循环执行When:playbook条件判断for or if:template模板文件的循环操作和 if 操作template模板可以理解为是copy的升级版,常规copy文件到远程主机后如果需要修改文件内容可以使用replace,但是这样操作就会有一个问题,文件发生了改变,下次再执行playbook文件,又会copy一次文件,然后执行replace,失去了幂等性也不方便,templat

2021-04-12 12:37:03 175

原创 ansible 基础

ansible特点基于python模块调用方法,完成需要的操作基于ssh协议连接,无须客户端支持playbook编排,通过yaml编写幂等性,不会重复执行操作,避免错误操作导致重大问题支持roles角色的功能(类似python的包概念)也就是多个模块的集合,实现一个项目ansible架构host:用于管理的主机清单,ansibel 本身为控制端,被控制端都需要加入到host中playbooks:编写yaml格式的一个个模块进行复杂数据结构编写执行modules:支持命令行执行各种模

2021-04-09 11:42:06 173

原创 python 字符串功能操作

字符串格式化通过占位符拼接字符串.format (推荐)%sfmessage = "学会{0}开发就能创造美好生活".format("python")message1 = "学会{0}开发就能创造美好生活{0}"message2 = "学会{}开发就能创造美好生活{}".format("python","python")print(message)print(message1.format("python"))print(message2)#以位置的占位符从0开始,{}不写默认就是

2021-03-25 23:32:06 160

原创 Jenkins Pipeline声明式流水线

Jenkins是为了顺应以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发,也就是敏捷开发模型传统的瀑布模型上一个的输出是下一个的输入,没有迭代与反馈,也就代表了没有回头路可以走,对于后期的更改成本巨大敏捷模型符合现在互联网思想,快交付、以人为本,用户可以参与其中,小版本迭代升级,但是相对的也带来频繁的重复打包、构建、测试、上线等等的操作,这个部分就交给了Jenkins 来完成自动化的持续集成Jenkins常用项目类型自由风格软件项目(FreeStyle Project):基于w

2021-03-22 19:49:29 750

原创 Ceph 命令记录

ceph版本:ceph version 14.2.18( nautilus )基础查询使用ceph df#查看ceph磁盘详细信息ceph -s#查看ceph整体信息,包括集群状态,osd、mon、mgr等等ceph health detail#查看详细的集群状态错误信息ceph osd tree#查看osd树目录ceph-mon --show-config | grep pgceph-mon --show-config | grep mon_max_pg_per_osd#查

2021-03-19 18:00:14 250

原创 Jenkins安装和基础环境

Jenkins安装方式:yum和rpm服务依赖:Java 8 or Java 11用户名:jenkins主目录:/var/lib/jenkins常规插件安装官方(yum)sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.reposudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

2021-03-12 19:37:49 636

原创 Rabbitmq 集群

Rabbitmq 集群集群目的就是为了实现rabbitmq的高可用性,集群分为2种普通集群:主备架构,只是实现主备方案,不至于主节点宕机导致整个服务无法使用镜像集群:同步结构,基于普通集群实现的队列同步普通集群slave节点复制master节点的所有数据和状态,除了队列数据,队列数据只存在master节点,但是Rabbitmq slave节点可以实现队列的转发,也就是说消息消费者可以连接到slave节点,但是slave需要连接到master节点转发队列,由此说明只能保证了服务可以用,无法达到高

2021-02-26 16:24:48 10971 2

原创 K8s 滚动更新

Deployment特性事件和状态查看保存更新版本记录,支持回滚到指定版本可以实现多种自动更新方案暂停和启动,支持每次升级必要的暂停,以便是否继续以下的更新说白就是基于Pod的滚动更新高级支持,特性都是针对更新而言Deployment更新更新的是Pod模板下的内容,比如镜像文件,标签、存储等等,而怎么更新就由Deployment控制器完成更新策略:滚动更新和重新创建更新和回滚方式:yaml文件和命令行暂停更新方案:符合现实使用的更新方案更新策略滚动更新(默认):新旧版本

2021-02-19 18:43:16 1486

原创 K8s configmap配置

前提基于分布式的场景需求,应用都是会存在多个节点上的,对于随着应用的增加会带来很大的不便利,如果配置发生更改就要进行重新提交git、打包、分发,分发上线的工作就变得繁杂和沉重开源本身也提供了很多的解决方案,比如diamond、apollo、disconf等等,而k8s就是configmapconfigmap以非机密性的数据形式提供给Pod,实现分布式环境对配置信息的需求存储格式:K/V键值对使用方式:环境变量和挂载(volumes)创建方式:命令行创建和配置清单存储格式serv

2021-02-09 16:47:46 607

原创 K8s secret配置

secretsecret用于保存铭感信息,比如密码、ssh-key、令牌等等存储格式:K/V键值对使用方式:环境变量和挂载(volumes)密文方式:base64创建方式:命令行创建和配置清单使用场景:opaque:通用自定义数据,base64编码kubernetes.io/service-account-token:用于存储SA用户认证信息kubernetes.io/dockerconfigjson:用户存储docker仓库认证信息kubernetes.io/tls:用于tls通讯

2021-02-09 15:07:23 1779

原创 prometheus 安装配置

prometheus安装方法二进制安装:便于学习理解docker安装:方便和可移植k8s安装:也是基于docker,实现可管理监控指标cAdvisor:是一个谷歌开发的容器监控工具,提供http方式获取数据和web界面,它被内嵌到k8s中作为k8s的监控组件(kubelet)看下docker默认的监控docker stats缺点:无法被获取数据和界面,也就是说是个单机版的,cAdvisor就是弥补这样的缺点cadvisor是可以单独安装的,但是如果安装了kubelet,就

2021-02-08 17:24:48 371

原创 2020 选择和学习

2020总结选择比努力更重要成为终身学习者

2021-02-07 13:35:20 206 2

原创 prometheus 基础

prometheus语言:go,高性能和并发监控方式:pull方式,解放客户端,客户端只负责采集数据,简化复杂度接口:HTTP,简单方便数据库:时序数据库支持报警:支持

2021-02-05 17:49:34 140 1

原创 K8s 控制器(controller-manager)

前提对于k8s的自主式的Pod出现问题的解决方案Pod主进程发生故障,由kubelet根据重启策略进行操作恢复Pod程序发生故障,由存活性探测(liveness probe)进行故障通报,再进行重启策略问题:针对意外删除Pod或者节点故障导致的问题,Pod无法进行处理K8s 控制器通过绑定Pod进行监控其状态,实现满足用户预期的状态,通过控制器实现Pod生命周期中的各类自动管理行为,比如创建和删除(k8s的控制器存在很多种,针对资源类型不同)k8s依据资源类型分为5种工作负载:Pod

2021-02-04 18:45:02 1117

原创 K8s cni+flannel (cnm)

CNI 和 CNM都是针对容器网络的解决方案CNM: Docker 公司(docker container runtime 背后的公司)提出CNI:CoreOS公司提出,项目被接纳托管到 CNCFCNMdocker默认网络模式host:共享主机网络Network namespacebridge:桥接主机网卡none:容器有独立的Network namespace,但是没有网络配置(常用测试使用)这样的几种网络方式是无法满足容器互联需求的CNM定义Libnetwork是CNM

2021-02-03 13:58:35 825

原创 etcd 集群部署

安装go语言环境wget https://studygolang.com/dl/golang/go1.15.6.linux-amd64.tar.gztar -xvf go1.15.6.linux-amd64.tar.gz -C /usr/local/#下载并解压到/usr/local下配置环境变量vi /etc/profileexport GOROOT=/usr/local/go export GOPATH=/go/gopath #工作目录export PATH=$PATH:

2021-01-29 09:30:24 84

原创 K8s PV和PVC(动态)

存储类(StorageClass)当用户需要使用存储时,需要通过PVC进行绑定PV,有几种情况会出现问题PVC需求匹配不到需要的PVPVC需求量很大的时候用户需求无法确定的常见,会随着环境而改变存储类就是为了实现PV动态供给,对于PV进行分组管理,管理员可以自定义级别或者功能来区分使用...

2021-01-27 19:19:13 1801

空空如也

空空如也

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

TA关注的人

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