自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

元贞

生命在于运动,健身,学习,阅读,早睡早起

  • 博客(502)
  • 收藏
  • 关注

原创 bitwarden 搭建企业密码管理服务器

目录Bitwarden自托管部署代码注册登录报告新建组织创建密码记录或者密码集合控制集合的访问权限控制集合的权限用户新增成员编辑成员编辑策略编辑策略 - 禁用个人密码库Windows 客户端命令行密码管理支持AD、LDAP 同步BitwardenOpen Source Password Managerhttps://bitwarden.com/使用 Bitwarden 推动协作、提高工作效率...

2023-06-18 18:01:00 300

原创 关闭 Windows 自动更新

2023-06-18 16:13:00 98

原创 Rocky Linux 8.5 安装

Rocky Linux 是一个开源的企业级操作系统,旨在与 Red Hat Enterprise Linux® 100% 1:1 兼容。

2023-05-20 09:05:53 268 1

原创 Ubuntu 安装jdk 1.8_262

Ubuntu 安装jdk 1.8_262。

2023-05-14 19:25:50 236

原创 Windows 开启更新服务设置

找到 Windows update 的服务,可以看到这里的是禁用状态。然后输入 services.msc 回车。可以在右边的服务项目里面输入w,右键选中服务后点击,自动启动。键盘 win + R ,

2023-05-11 21:35:59 434 1

原创 Python 安装 pyenv

安装安装到指定位置方便管理pip install pyenv-win -i "D:\Program Files\pyenv"配置环境变量查找安装的版本这里我们安装3.11 为示例安装后我们在下面的versions目录可以找到Python的程序文件...

2023-04-09 11:48:00 49

原创 技术路线图

2023-04-08 09:31:00 41

原创 第28章 负载均衡

目录1 动态获取可用端口2 什么是负载均衡,负载均衡的策略有哪些?3 常用负载均衡算法4 grpc从consul中同步服务信息并进行负载均衡-15 grpc从consul中同步服务信息并进行负载均衡-26 gin集成grpc的负载均衡1 动态获取可用端口2 什么是负载均衡,负载均衡的策略有哪些?3 常用负载均衡算法4 grpc从consul中同步服务信息并进行负载均衡-15 grpc从c...

2023-01-28 11:44:00 27

原创 第25章 web层开发-用户接口开发

目录1 表单验证的初始化2 自定义mobile验证器3 登录逻辑完善4 session机制在微服务下的问题5 json web token的认证机制6 集成jwt到gin中7 给url添加登录权限验证8 如何解决前后端的跨域问题9 获取图片验证码10 阿里云发送短信11 redis保存验证码12 用户注册接口1 表单验证的初始化2 自定义mobile验证器3 登录逻辑完善4 session...

2023-01-27 22:27:00 38

原创 第22章 go的web框架-gin

目录1 gin的helloworld体验2 使用New和Default初始化路由器的区别3 gin的路由分组4 获取url中的变量5 获取get和post表单信息6 gin返回protobuf7 登录的表单验证8 注册表单的验证9 表单验证错误翻译成中文10 表单中文翻译的json格式化细节11 自定义gin中间件12 通过abort终止中间件后续逻辑的执行13 gin的中间件原理源码分析14 ...

2023-01-26 09:13:00 38

原创 Go语言学习之 Day11 数据库编程

Go操作MySQLdatabase/sql包提供了对数据库的通用接口,在使用具体数据库式需要选择对应的数据库驱动数据库驱动MySQL:github.com/go-sql-driver/mysqlPostgreSQL: github.com/jgallagher/go-libpq...

2023-01-25 15:01:00 54

原创 Go语言学习之 Day08 并发编程

并发编程基本概念并发编程开发将一个过程按照并行算法拆分为多个可以独立执行的代码块,从而充分利用多核和多处理器提高系统吞吐率顺序、并发与并行顺序是指发起执行的程序只能有一个并发是指同时发起执行(同时处理)的程序可以有多个(单车道并排只能有一辆车,可同时驶入路段多辆车)并行是指同时执行(同时做)的程序可以有多个 (多车道并排可以有多个车)例程Go语言中每个并发执行的单元叫Goro...

2023-01-23 12:23:00 46

原创 Go语言学习之 Day09 网络编程

目录网络编程TCP服务器/客户端开发UDP服务器/客户端开发命令行聊天室web开发HTTP协议web应用开发客户端开发Web爬虫HTML结构GoqueryRPC网络编程net包提供了对socket编程的支持,socket编程分服务端和客户端编程,针对服务端可使用函数Listen创建监听服务,对于客户端可使用函数Dial连接服务器常用函数Li...

2023-01-23 08:59:00 53

原创 04 | 身份认证:除了账号密码,我们还能怎么做身份认证?

上一讲,我们详细讲解了密码学的三种算法:高效安全的对称加密算法,解决密钥分发难题的非对称加密算法,以及提供单向加密的散列算法。在表达了你对密码学清晰的理解之后,面试官开始相信你具备安全方面的基础知识了。于是,他准备和你探讨一下安全落地的细节。基于你之前提出的“黄金法则”,面试官问道:“黄金法则的认证(Authentication)部分不就是账号密码吗?这么简单的东西,有必要考虑得那么复杂吗?”...

2023-01-16 22:19:00 59

原创 深浅copy

现有数据data = { "name":"alex", "age":18, "scores":{ "语文":130, "数学":60, "英语":98, }}d2 = datadata["age"] = 20 print(d2) 你说d2打印的值里,age是18,还是20?{'name': 'a...

2023-01-16 18:25:00 26

原创 Go语言学习之 Day04

包&模块单元测试常用包log点击查看代码package mainimport ( "fmt" "log")func test() { defer func() { recover() }() log.Panicln("panic")}func testFatal() { log.Fatalln("fatal")}func main() {...

2023-01-15 20:50:00 30

原创 Go语言学习之 Day07 接口

Go 学习 day 07接口接口是自定义类型,是对是其他类型行为的抽象定义:接口定义使用interface标识,声明了一系列的函数签名 (函数名、函数参数、函数返回值),在定义接口时可以指定接口名称,在后续声明接口变量时使用。声明interface_testpackage day07import ( "fmt" "testing")type User struct {...

2023-01-15 20:49:00 27

原创 Go语言学习之 Day03

函数函数-定义&调用定义函数包含函数名、行参列表、函数体和返回值列表,使用func进行声明,函数无参数或返回值时则形参列表和返回值列表省略形参列表需要描述参数名及参数类型,所有形参为函数块局部变量。返回值需要描述返回值类型a)无参&无返回值b)有参&无返回值c)有参&有返回值调用函数通过函数名(实参列表),在调用过程中实参的每个数据会赋值给形参中...

2023-01-15 20:46:00 46

原创 Go语言学习之 Day01

并发编程基本概念例程闭包陷阱共享数据管道常用包练习作业

2023-01-15 20:46:00 44

原创 Go语言学习之 Day06

文件操作读文件:Open:打开文件并返回文件对象指针写文件:Create:创建文件并返回文件对象指针(文件不存在则创建,文件存在则清空)追加文件:OpenFile:按指定权限打开文件,并返回文件指针对象Mode:获取文件模式Flag:获取日志开头文件位置:Seek:设置文件指针位置删除文件:Remove:移除文件或空文件夹RemoveAll:移除所有文件重命名:Renam...

2023-01-15 20:46:00 29

原创 Go语言学习之 Day02

数组赋值二维数组切片切片操作slice内存slice切片操作slice元素删除点击查看代码1. 所有资料, 上课代码, 同学作业 => github web链接: https://github.com/htgolang/htgolang-20200919 目录说明: a. course: 课程PPT、复习、代码、截图等所有课程资料 b. ...

2023-01-15 20:45:00 36

原创 Go语言学习之 Day05 结构体

结构体结构体是由一些列属性组成的复合数据类型,每个属性都具有名称、类型和值,结构体将属性组合在一起进行由程序进行处理。自定义类型在go语言中使用type声明一种新的类型,语法格式为:type TypeName FormatterFormatter 可以是任意内置类型、函数签名、结构体、接口redefine_test.gopackage day05import "testing...

2023-01-15 17:04:00 18

原创 3.1 series介绍

pandas简介pandas是一个强大的 Python数据分析的工具包,是基于NmPy构建的。pandas的主要功能具备对其功能的数据结构 Dataframe, Series集成时间序列功能提供丰富的数学运算和操作灵活处理缺失数据安装方法:pip install pandas引用方法:import pandas as pdSeries-一维数据对象Series是一种类似于一维...

2022-12-31 00:01:00 7

原创 日志切割 logrotate

TOCSre@iddcipl01043:~$ cat /etc/.d/nginx /var/log/nginx/*.log { daily missingok rotate 14 compress delaycompress notifempty create 06...

2022-12-20 20:48:00 14

原创 process 进程监控

常见的进程监控配置查看监控状态process_exporter.serviceroot@ph-drt-v-66-232-live:~# systemctl status process_exporter.service● process_exporter.service - Process Exporter for Prometheus Loaded: loaded (/et...

2022-12-19 17:09:00 31

原创 7、Ceph日常运维管理.md

一、集群监控管理集群整体运行状态[root@cephnode01 ~]# ceph -s cluster: id: 8230a918-a0de-4784-9ab8-cd2a2b8671d0 health: HEALTH_WARN application not enabled on 1 pool(s) services: mo...

2022-01-07 12:07:00 15

原创 第9章 Python Web 框架考察点

Python WSGI与web框架常考点WSGI 常见Web框架◆什么是WSGI?◆常用的 Python Web框架Dang/Fask/Tornado对比◆web框架的组成(淡化框架,加强基础)什么是WSGI?什么是WSGI?为什么需要它?经常使用uwsgi/gunicorn部署 Django/Flask应用为什么Flask/Django都可以运行在 gunicorn之上?◆...

2021-02-10 16:39:00 155 1

原创 面向对象实战

一 引子学完了面向对象的基础知识后,很明显你还是不知该如何下手,凡是都得有个章法此刻有经验的人可能会想到瀑布模型、螺旋模型、迭代开发、敏捷、RUP等一堆软件工程相关的软件开发流程,但对于大部分人来说这些流程仅仅只是项目管理上的流程本节我们就带大家来了解下,作为一名程序员基于面向对象开发程序的开发流程:需求模型->领域模型->设计模型->实现模型二 需求模型之5w1h...

2021-01-22 16:15:00 192 1

原创 Nginx 性能优化

Nginx 性能优化有这篇就够了!1、Nginx运行工作进程数量Nginx 运行工作进程个数一般设置CPU的核心或者核心数x2。如果不了解cpu的核数,可以top命令之后按1看出来,也可以查看/proc/cpuinfo文件 grep ^processor /proc/cpuinfo | wc -l[root@lx~]# vi /usr/local/nginx1.10/conf/nginx.con...

2020-12-28 14:49:00 74

原创 Redis 实战笔记

Redisyum源安装yum install -y epel-release redissystemctl enable redissystemctl start redissystemctl status redisredis 简介Redis是一个开源的使用 C语言编写的 Key-value内存数据库读写性能强,支持多种数据类型把数据存储在内存中的高速缓存作者 Salvatore San...

2020-12-06 16:11:00 248

原创 19 | 案例篇:为什么系统的Swap变高了(上)

上一节,我通过一个斐波那契数列的案例,带你学习了内存泄漏的分析。如果在程序中直接或间接地分配了动态内存,你一定要记得释放掉它们,否则就会导致内存泄漏,严重时甚至会耗尽系统内存。不过,反过来讲,当发生了内存泄漏时,或者运行了大内存的应用程序,导致系统的内存资源紧张时,系统又会如何应对呢?在内存基础篇我们已经学过,这其实会导致两种可能结果,内存回收和 OOM 杀死进程。我们先来看后一个可能结果,内存...

2020-12-01 16:13:00 104

原创 18 | 案例篇:内存泄漏了,我该如何定位和处理?

通过前几节对内存基础的学习,我相信你对 Linux 内存的工作原理,已经有了初步了解。对普通进程来说,能看到的其实是内核提供的虚拟内存,这些虚拟内存还需要通过页表,由系统映射为物理当进程通过 malloc() 申请虚拟内存后,系统并不会立即为其分配物理内存,而是在首次访问时,才通过缺页异常陷入内核中分配为了协调 CPU 与磁盘间的性能差异,Linux 还会使用 Cache 和 Buffer ,分...

2020-12-01 15:50:00 400

原创 17 | 案例篇:如何利用系统缓存优化程序的运行效率?

上一节,我们学习了内存性能中 Buffer 和 Cache 的概念。简单复习一下,Buffer 和 Cache 的设计目的,是为了提升系统的 I/O 性能。它们利用内存,充当起慢速磁盘与快速 CPU 之间的桥梁,可以加速 I/O 的访问速度。Buffer 和 Cache 分别缓存的是对磁盘和文件系统的读写数据。从写的角度来说,不仅可以优化磁盘和文件的写入,对应用程序也有好处,应用程序可以在数...

2020-11-30 11:42:00 97

原创 16 | 基础篇:怎么理解内存中的Buffer和Cache?

上一节,我们梳理了 Linux 内存管理的基本原理,并学会了用 free 和 top 等工具,来查看系统和进程的内存使用情况。在今天的内容开始之前,我们先来回顾一下系统的内存使用情况,比如下面这个 free 输出界面:# 注意不同版本的 free 输出可能会有所不同$ free total used free shared b...

2020-11-30 11:11:00 276 1

原创 15丨基础篇:Linux内存是怎么工作的?

前几节我们一起学习了 CPU 的性能原理和优化方法,接下来,我们将进入另一个板块——内存。同 CPU 管理一样,内存管理也是操作系统最核心的功能之一。内存主要用来存储系统和应用程序的指令、数据、缓存等。那么,Linux 到底是怎么管理内存的呢?今天,我就来带你一起来看看这个问题。内存映射说到内存,你能说出你现在用的这台计算机内存有多大吗?我估计你记得很清楚,因为这是我们购买时,首先考虑的一个重要...

2020-11-30 10:51:00 77

原创 13 | 答疑(一):无法模拟出 RES 中断的问题,怎么办?

问题 1:性能工具版本太低,导致指标不全这是使用 CentOS 的同学普遍碰到的问题。在文章中,我的 pidstat 输出里有一个 %wait 指标,代表进程等待 CPU 的时间百分比,这是 systat 11.5.5 版本才引入的新指标,旧版本没有这一项。而 CentOS 软件库里的 sysstat 版本刚好比这个低,所以没有这项指标。不过,你也不用担心。前面我就强调过,工具只是查找分析的手段...

2020-11-28 18:12:00 172

原创 12 | 套路篇:CPU 性能优化的几个思路

上一节我们一起回顾了常见的 CPU 性能指标,梳理了核心的 CPU 性能观测工具,最后还总结了快速分析 CPU 性能问题的思路。虽然 CPU 的性能指标很多,相应的性能分析工具也很多,但理解了各种指标的含义后,你就会发现它们其实都有一定的关联。顺着这些关系往下理解,你就会发现,掌握这些常用的瓶颈分析套路,其实并不难。在找到 CPU 的性能瓶颈后,下一步要做的就是优化了,也就是找出充分利...

2020-11-28 18:01:00 317

原创 11 | 套路篇:如何迅速分析出系统CPU的瓶颈在哪里?

CPU 的性能指标那么多,CPU 性能分析工具也是一抓一大把,如果离开专栏,换成实际的工作场景,我又该观察什么指标、选择哪个性能工具呢?不要担心,今天我就以多年的性能优化经验,给你总结出一个“又快又准”的瓶颈定位套路,告诉你在不同场景下,指标工具怎么选,性能瓶颈怎么找。CPU 性能指标我们先来回顾下,描述 CPU 的性能指标都有哪些。你可以自己先找张纸,凭着记忆写一写;或者打开前面的文章,自己总...

2020-11-27 16:57:00 89

原创 10 | 案例篇:系统的软中断CPU使用率升高,我该怎么办?

上一期我给你讲了软中断的基本原理,我们先来简单复习下。中断是一种异步的事件处理机制,用来提高系统的并发处理能力。中断事件发生,会触发执行中断处理程序,而中断处理程序被分为上半部和下半部这两个部分。上半部对应硬中断,用来快速处理中断;下半部对应软中断,用来异步处理上半部未完成的工作。Linux 中的软中断包括网络收发、定时、调度、RCU 锁等各种类型,我们可以查看 proc 文件系统中的 /pro...

2020-11-27 16:54:00 142

原创 09 | 基础篇:怎么理解Linux软中断?

上一期,我用一个不可中断进程的案例,带你学习了 iowait(也就是等待 I/O 的 CPU 使用率)升高时的分析方法。这里你要记住,进程的不可中断状态是系统的一种保护机制,可以保证硬件的交互过程不被意外打断。所以,短时间的不可中断状态是很正常的。但是,当进程长时间都处于不可中断状态时,你就得当心了。这时,你可以使用 dstat、pidstat 等工具,确认是不是磁盘 I/O 的问题,进而排查相...

2020-11-27 16:22:00 97

空空如也

空空如也

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

TA关注的人

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