![](https://img-blog.csdnimg.cn/20190918140158853.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
信息技术笔记
记录关于计算机技术的常识
howard_shooter
交流微信:17625988619
展开
-
Helm是个啥
Helm提供了和yum类似的创建应用包的工具,对应yum的打包操作,Helm的“应用程序包”成Chart,Chart打包后可以上传到远程的repository,需要在k8s上安装应用时,就从repository下载Chart。Helm就相当于把kubernetes集群,看作一个Linux系统,执行Helm命令来下载安装“应用”,而这个“应用”是包括各种k8s资源的集群。yum是Linux的应用程序包管理器,可以下载应用程序,有时候还可以配置操作系统让下载的引用程序在后台启动,例如docker等。原创 2024-06-17 17:46:41 · 225 阅读 · 0 评论 -
valgrind 是个啥?
m->msg开始sizeof (struct rawmsg)大小的内存,标记为未定义(初始化)的内存,如果没有这个宏,memcheck仿真cpu会认为这块内存是已经被初始化的,因为前面调用了memset,而memcheck仿真cpu会监视memset,这个宏在需要重用一块内存时使用。当然,不可能真的为进程地址空间的每个字节,分配记录其属性的bitmap,因为这些bitmap本身也占用地址空间的字节,memcheck只记录被客户程序触及到的进程地址空间字节的属性,未触及到的字节的属性,应该有办法压缩表示。原创 2024-04-09 11:21:44 · 922 阅读 · 0 评论 -
gdb 打印C++ std::vector里的元素
参考上面的文章,总结如下:$2 = 78$3 = 78$4 = 0$5 = -53。原创 2024-03-29 11:34:16 · 318 阅读 · 0 评论 -
制作 configure 文件极简教程
如果要发布自己的源码,而自己的源码想通过configure,make,make install 编译安装,那么要为自己的源码建立 configure 文件,这个configure 文件不是手写的,而是autoconf生成的,这个生成过程是怎样的呢?上面的文章就举了一个极简的例子,让人有个很快的初步认识。原创 2024-03-25 17:43:10 · 241 阅读 · 0 评论 -
Makefile的override
将的很好,简单的说,如果在Makefile中有override CPPFLAGS +=-fPIC,无论用户在 make CPPFLAGS=XXX 这里怎样设置,最终编译时都会把-fPIC加到CPPFLAGES里,一般用于添加通用的选项。简单的理解就是编译时要加 -fPIC,告诉编译器生成Position Independent Code,试过。可以成功编译,不过看到其它的解决方案是在Makefile中加。原创 2024-03-25 16:26:30 · 246 阅读 · 0 评论 -
Unix Domain Socket 比 localhost(127.0.0.1)更快
2、localhost(127.0.0.1)和本机IP是一样的,虽然不走网卡,但是都要走内核的 TCP/IP协议栈,这带来一定的CPU开销。1、localhost(127.0.0.1)、本机IP 和 Unix Domain Socket 都是不走网卡的,这节省了网卡的IO。使用socket进程间通讯,有很好的兼容和复用性,本机的socket进程间通讯,最好选用Unix Domain Socket。原创 2024-02-28 15:01:05 · 464 阅读 · 0 评论 -
什么是代码混淆
code obfuscation 指将代码中有描述性,易于理解的变量名、函数名、类名等,替换成毫无意义的字符串,让阅读代码的人难以读懂,提出这个概念的人认为这样可以保护脚本的逻辑不被人盗取,尤其是网页脚本。原创 2024-02-28 09:28:30 · 170 阅读 · 0 评论 -
docker 和 k8s
https://www.runoob.com/docker/docker-architecture.htmldocker由dockerd来接受客户端的命令,它可以下载、管理镜像,创建、管理容器。由一个镜像可以创建多个容器,系统中运行的虚拟实体,就是容器。dockerd也可以管理容器与宿主机之间的端口,网络,目录映射。每个容器由自己的ip吗?是的容器可以启动,也可以停:docke...原创 2024-01-22 14:28:08 · 834 阅读 · 1 评论 -
记 doris 加载压缩文件(lzo、snappy)pr
这里要分清两个概念:lzo是压缩算法,它只管把一块大的数据压缩成一块小的数据,但是要把一个文件分成几个数据块来压缩,压缩以后怎么保存到磁盘,以便于解压缩,这些lzo是不管的,也不会做规定,于是就有了lzop,它是一个把普通文件做lzo压缩和解压的工具(可执行程序),它定义了保存lzo压缩文件的格式,可以理解lzop是保存用lzo压缩算法压缩以后的数据的一个容器(包装盒),而这个lzop也是有格式的。解压时,接受一个已压缩的数据块,解压以后的数据块,放在另一个内存地址,解压后的大小,作为参数返回。原创 2024-02-01 16:14:09 · 923 阅读 · 0 评论 -
etcd\Patroni\PostgreSQL使用SSL、TLS、HTTPS
澄清:SSL/TLS并不是TCP一种加密的TCP协议,而是在TCP协议之上,HTTPS在SSL/TLS之上,TLS是新版本的SSL。除了HTTPS,其他基于TCP/IP的网络通讯,也可以使用SSL/TLS。原创 2023-08-23 16:47:31 · 189 阅读 · 0 评论 -
C++11 的特性:lambda表达式、std::bind
它可以将函数的参数和一些变量或表达式绑定。函数参数的默认值,只能用常数,而使用std::bind(),当省略函数某个绑定过的参数来调用函数时,会将绑定时的变量或表达式的值,赋给函数的参数。函数参数可以有默认值,这样调用时,可能和定义时函数的参数声明个数就不一样了。不过,有时候函数参数有默认值,使我们在调用时更方便了。原创 2023-08-04 17:16:16 · 163 阅读 · 0 评论 -
Shell 变量未定义的缺省值 ${BUILD_TYPE:-Release}
【代码】Shell 变量未定义的缺省值 ${BUILD_TYPE:-Release}原创 2023-07-19 10:45:50 · 233 阅读 · 0 评论 -
go 语言的编译和一些常识
2、可以在import时指定代码的版本,就是github上的版本,规则就是仓库地址后面加一个版本号,例如,下面github.com/kataras/iris/v12中的v12,表示版本12.xxx,指定主版本号,不要指定完整版本。1、go是互联网语言,对网络依赖程度很高,许多import的包都要到网络上下载,而下载的其实都是go语言源码,然后本地编译,例如,许多都是到github上下载。这样就可以指定子目录的版本。# 分析源码,下载依赖,生成 go.sum。# 初始化go工程生成go.mod。原创 2023-07-10 09:05:55 · 157 阅读 · 0 评论 -
apache httpd 作为正向代理
1、工作需要,有些不能连外网的机器,需要yum下载,maven下载,pip下载,npm下载,可以在内网中可以连外网的机器上建立http代理,上面软件可以通过代理下载。2、代理服务器安装配置httpd。原创 2023-07-06 09:42:01 · 218 阅读 · 0 评论 -
libc.so.6 动态库重命名、删除,命令不能执行
我遇到的情况是重命名了libc.so.6,但是终端处于非root用户,还好是从root用户进入的,exit一下能够正常会到root用户的终端,再用上面的操作,恢复了libc.so.6。Linux下许多这个命令(ls、cp、mv)都会链接这个库,这个库如果出问题,例如改名了,删除了,操作系统就别想用了。即设置LD_PRELOAD这个环境变量,指定程序加载哪里的libc.so.6。原创 2023-06-07 15:47:33 · 810 阅读 · 0 评论 -
makefile 干跑 -n
n 选项可以让make只显示运行时要跑哪些命令,和命令行的参数值,并不真的执行这些命令。只显示执行fastcheck_single这个目标执行了哪些命令。这个功能可以用来理解make工程。原创 2023-05-16 18:35:17 · 106 阅读 · 0 评论 -
集群内时钟服务器同步
当然服务器节点也可以向它的上一层申请授时。sudo ntpdate原创 2023-03-30 11:44:16 · 87 阅读 · 0 评论 -
Conan:C/C++的依赖管理
对于新一代的编程语言Java、Python,当编译、运行时需要第三方的库,可以用语言自带的工具,下载这些依赖库,级联依赖的库也会被下载,部署时也会去下载或者用之前下载的。而C/C++编译、运行时,可以链接操作系统里的动态库,这些库的下载需要手工执行yum,部署时也需要这样安装依赖库。C/C++与Java、Python都有库依赖问题,但是C/C++语言没有自带的包管理机制,也许是因为C/C++更多的应用于系统程序领域,Java、Python更多用于应用程序领域,对快速开发和部署要求更高。原创 2023-01-11 17:39:21 · 1679 阅读 · 2 评论 -
上传代码到gitee
例如,我从github下载了代码debezium,修改后提交,然后向上传到gitee保存起来自己用,就需要在gitee上创建一个新的仓例如起名debezium,路径为。commit之后也创建了master分支,也是文件所提交的分支。gitee注册账号后,点“+”号创建代码仓库,这就是你的代码库上传后的路径。然后填写仓库名称和路径,这个可以随便写,只要符合规定就行了,然后点“创建”然后改完了再push,这两种方式以后上传时都是这样操作。原创 2022-12-08 17:37:26 · 1345 阅读 · 0 评论 -
测试网络、磁盘使用情况和最大性能(fio,iperf)
IFACE代表着网卡,一般一个IP对应一个网卡,上面的例子192.168.100.8对应一个万兆网卡em1,也连接着服务端的万兆网卡p2p1,下面rxkB/s表示每秒收到的字节数,txkB/s表示每秒发出的字节数,我一般只观察这两个指标,从下面的图可以看出,客户端每秒发出1206614.22kB,服务端每秒收到121633.10kB。测磁盘最大带宽主要用fio这个工具,它可以生成各种模式的磁盘读写,可以读写文件系统中的文件,还可以直接读写裸盘。查看网卡信息:ethtool p2p1。原创 2022-12-02 11:44:13 · 1452 阅读 · 0 评论 -
make时向Makefile传变量,CPPFLAGS
编译时会从pg_config头文件目录,就是openguass安装目录的include目录。但是,这个头文件不在这个目录下,而是在源码根目录的src/include下。原创 2022-11-10 10:39:50 · 944 阅读 · 0 评论 -
数据库和限流
这让我形成这样一种想法:每种软件都有它适用的场景和所要求的硬件,用对了、配置对了就是好软件,用不对、不会配置,就是烂软件。这有点像用人,有些人看起来很烂,但是会用人的人,懂得在怎样的条件下,能发挥这个人的长处,还懂得怎样利用这个长处创造价值,例如,禅师与大虫罗德曼。这篇文章确实启发了我重新认识数据库,使我意识到架构的重要性(架构听起来很高级,其实内容很简单,就是对各种软件组件,例如数据库的使用)。让我意识到,数据库是需要限流的,不应该不考虑硬件能力,而极限压榨数据库,否则稳定性、相应时间都会有问题。原创 2022-10-25 16:33:35 · 809 阅读 · 0 评论 -
MySQL 8 的二进制包安装和初始化
基于Generic Linux的二进制安装包,创建了 etc, data目录,my.cnf 必要最小内容如下:[mysqld]socket = /root/mysql-5.7.27-linux-glibc2.12-x86_64/mysql.sockbasedir = /root/mysql-5.7.27-linux-glibc2.12-x86_64datadir = /root/mys...原创 2022-10-11 09:09:42 · 638 阅读 · 0 评论 -
CPU满负荷时,能ping通,ssh连不上
CPU满负荷的时候,可能的现象是能ping通,ssh连不上。原创 2022-10-09 14:37:29 · 1005 阅读 · 0 评论 -
数据库中的基表(base table)
基表(base table)是相对于视图(view)而言的,从其它表衍生而来的不是基表,反之就是基表。原创 2022-03-31 17:13:47 · 2757 阅读 · 0 评论 -
引用 Python 中 import 模块
_init__.py 可以再引入其它模块,这样可以通过patroni.dcs前缀引用这些模块,如果__init__.py没有引入其它模块,import patroni.dcs后就只能调用__init__.py中定义的类、函数等了,若要调用patroni/dcs目录下的其它模块,必须进一步引用其模块名,例如import patroni.dcs.etcd。在Python程序或命令行中,可以使用import引入整个模块,或这个模块中具体的类、函数等。Python中模块的最小单位是python文件(*.py)。..原创 2022-08-30 17:00:29 · 594 阅读 · 0 评论 -
句柄泄露?进程到底打开了多少句柄?
Linux中打开的资源,如文件、socket、FIFO等,没有使用也没有关闭,这就是句柄泄露。如同内存泄露,这反映了程序的缺陷,随着时间流逝,可能会有更多被打开而没有使用的句柄,白白占用系统。可用 lsof -n |grep pid 查看一个进程打开的所有资源句柄,问题是,如果进程有多个线程,这个命令,会为每个线程罗列一遍所有句柄,仿佛每个线程都独立打开了一次,其实不是的,可从FD这一列的值,确定到底打开了几个句柄,例如下面,真正打开的句柄数,是 lsof -n|grep 11278|w原创 2021-05-20 16:17:12 · 1541 阅读 · 0 评论 -
telnet探测远程机器的端口是否开放
判断远程机器上的端口是否可开放(有进程在监听)telnet ip port,如百度telnet 112.80.248.76 80如果能登录上,虽然什么也不能显示,也不能交互,但是这样就说名远程机器的端口是开放的。...原创 2021-06-23 08:29:51 · 350 阅读 · 0 评论 -
shell的多进程并发程序
开启两个进程来执行命令,并且等待这两个进程结束:#!/bin/shfor i in $(seq 1 2);do (echo $i;sleep 5;date)&donewaitecho "end ..."原创 2021-12-08 10:03:01 · 289 阅读 · 0 评论 -
长连接和短链接
本来想自己总结一下对长连接和短连接的理解,但是这哥们总结的太好了,既简练又全面:简单地说,长连接和短连接是HTTP里的概念,HTTP建立长连接时,底层的TCP设置了Keep alive属性。长连接和短链接的区别 - 简书...原创 2022-04-01 10:08:42 · 602 阅读 · 0 评论 -
getopt_long 命令行参数处理
今天修改opengauss代码pg_ctl.cpp,涉及到getopt_long的使用,这位老兄已经总结的很好了,我不必重复:浅谈linux的命令行解析参数之getopt_long函数_andy cong的博客-CSDN博客_getopt_long快速理解:1. 其实就是使用getopt_long及相关的全局变量,分析main里的argc和argv。2. 需要:a. 包含参数名和其缩写的定义结构体。 b. while-switch-case循环每次调用getopt_...原创 2022-04-07 15:13:31 · 253 阅读 · 0 评论 -
正向代理与反向代理
工作生活中经常会遇到正向代理和反向代理,这个哥们已经解释的很好了:正向代理与反向代理【总结】 - Rabbit_Dale - 博客园我简单总结一下(忽略了一些细节):正向代理是指网络上一台服务器,它代理了客户端访问服务器(是客户端的代理),它对服务器屏蔽了真实的客户端。反向代理是指网络上一台服务器,它代理了服务器被客户端访问(是服务器的代理),它对客户端屏蔽了真实的服务器。在使用时的区别就是,正向代理,客户端(如浏览器)需要配置代理服务器(的IP和端口),而反向代理,客户端不原创 2022-04-15 09:45:36 · 96 阅读 · 0 评论 -
必应(Bing)的站内搜索 site:<域名> <搜索内容>
最近在备考OCP,发现有一个网站的题库很好,就是www.examtopics.com,有很多Oracle的考题,都是在这里面搜到的,而且每道题都有人讨论。为了加快搜索速度,提高精度,可以用Bing在这个网站内搜索,例如要搜索的题目中包含“DEFERRED_SEGMENT_CREATION is TRUE” 就用下面的搜索语句:site:www.examtopics.com DEFERRED_SEGMENT_CREATION is TRUE...原创 2022-05-27 10:36:54 · 2623 阅读 · 1 评论 -
tac:文本按行反向排列
【代码】tac:文本按行反向排列。原创 2022-09-13 17:18:21 · 113 阅读 · 0 评论