首页
学习
活动
专区
工具
TVP
发布

MyPanda的学习笔记

专栏作者
83
文章
124791
阅读量
12
订阅数
值得一读的linux内存学习总结
a). 进程使用的物理内存: find /proc/ -maxdepth 1 -iname "[0-9]*" | xargs -I{} cat {}/smaps | grep Pss: | awk '{s+=$2}END{print s}' b). slab分配占用的内存,采用slab机制主要是解决申请时候浪费page的问题,这一部分的内存并不是application 所占用的,所以要单独列出来, 可以在meminfo 中查看到其占用空间以及可回收空间大小. c). pagetable在虚拟地址到物理地址的转换中发挥着关键的作用,所以也不属于application占用的内存,属于系统所用,所以也单独列出来. 其大小随着内存的变大而变大,可以在meminfo 中找到占用的大小. d). free的内存,这一部分内存是从system的角度看,依然是free的,也就是说这一部分内存还没有被system 进行接管. e). cache/buffer内存的大小,这一部分可以在meminfo 中找到,这里主要是 application 的所使用的cache/buffer. f). 其他原因导致的内存gap, 在下面的示例中,上述所述的6种内存的总和大于实际的总内存,这是因为 shmem 是被application使用的,所以在计算进程使用的物理内存的时候,已经包含了shmem,而cache又计算了一次,因此最后的结果应该是减去SHMEM, 这样 和总内存相比,还有5497KB的gap .那么这个gap 到底应该是available的,还是算作used的,不得而知,那么因为这个gap 不大,所以对于内存的使用状况统计,我们可以暂且忽略该gap, 所以我们可以有如下的公式作为一个参考: total = free + cache + buffer + process_used_via_pss + slab + pagetables - shmem
qsjs
2023-07-10
3120
libvirt 管理工具扩展虚拟机磁盘分区
使用libvirt 扩展虚拟机磁盘的方法: libvirt 工具支持KVM/Qemu,xen, lxc,openvz, esx, hyperv 等虚拟化,是一个使用及其广泛的虚拟化管理工具.
qsjs
2022-11-16
6980
rpm包相关的那些事
除了常规的已经编译的rpm包,还有一类是.src.rpm的包,这一类包也是rpm包,但是属于source rpm包,这类包是把source code,spec脚本等一起打包成rpm包,所以不能直接使用, 要使用这类包,需要首先编译成二进制的rpm才可以. 为什么需要使用该类包呢?当我们需要source code, 然后重新修改并生成新的rpm包,那么就首先需要source code. 所以该包就是这个作用. 要管理好这类包,需要更多一点的rpm相关知识:
qsjs
2022-10-28
6440
jks 证书文件的生成步骤
作为文件形式存在的证书,一般有三类: A. 包含有私钥的证书,包含了公钥和私钥,用pkcs12标准,而一般以pfx 作为扩展名; B. DER 编码证书,不含私钥,以cer 结尾,文件是二进制data. 通常CA(无论是intermediate CA还是root CA)证书都是这类; C. BASE64编码的证书,这类证书也不含私钥,一般也以cer结尾,是pem证书, 这类证书可以直接cat 出结果, 特征是”-----BEGIN CERTIFICATE----- “开头,“-----END CERTIFICATE-----”结尾;
qsjs
2022-09-09
4.2K0
rsync命令技巧
rsync 的常用参数如下: --partial 当有部分文件传输完成,再次传输的时候,会保留已经完成的部分; --progress 打印文件传输的进度 -P 该参数与 --partial --progress 相同, 表示打印文件传输进度,而对于重传发生的时候,会自动保留已经成功传输的部分 -v 表示 同步的时候,显示详细信息 -a 等同于 -rlptgoD , 但是没有 -A (保留acl ), -H (保留硬链接), -X (保留 extended attributes),因为acl,extended attributes 需要目标文件系统支持才可能实现保留 -r : 递归到目录中 -l : 保留软链接 -p : 保留文件的权限 -t : 保留文件的修改时间 -g : 保留所属组 -o : 保留 所属者 -D : 与 --devices --specials 相同,表示保留 设备文件以及特殊文件; 所以常用的参数为: rsync -avP
qsjs
2022-05-13
7710
结合/proc 的maps 理解top命令的VIRT 参数
从字面理解,就是一个task占用的虚拟内存的大小,包括代码,数据,共享库,swap out的pages,以及mapped 了但是还没有used 的pages. 而我们已经知道,这里page的概念其实是内存的“页”,内存采用分页机制;所以,简单来说,VIRT就是代码,数据,共享库以及map为内存可以访问的其他数据,无论这些数据是在物理内存还是在虚拟内存,只要是已经Map为内存可以访问的,那么都算数. 那具体来说,上述的数据都map了哪些文件,哪些内存地址呢? 其实可以在 proc 中找出的;
qsjs
2022-01-05
7210
awk 用于16进制内存地址的运算
在proc 文件系统中关于进程的内存信息,避免不了涉及内存地址的问题,而对于内存地址的计算,默认是采用16进制的,其实可以使用awk进行处理,如下是一个例子:
qsjs
2022-01-05
1.1K0
find 命令的使用笔记
其中 -prune 一般必须和-path 一起使用;并且-prune 后面的其他条件都需要 用逻辑 -o 进行连接; 上述命令的意思是: 在根目录下,查找size大于100M的文件,在查找过程中排除 /proc, /dev,/sys, /run 目录,查找后统计各个文件的使用大小,然后用sort 命令进行排序,最后取出使用较大的几个文件;
qsjs
2022-01-05
3260
更高效实用bash
bash 命令行是Linux最常用的工具了,但是经常通过鼠标的左右键调整光标的位置,实在是影响工作效率. 好在有一些快捷键是可以使用的: 1. ctrl+left/right : 以光标位置为分割,以单词为单位,向左右移动光标,如果左侧或者右侧没有单词,那么直接跳转到行首或者行尾 ctrl+w / alt+d: ctrl+w 以光标位置为分割,删除光标前面或者后面的单词,如果前面或者后面没有单词,那么直接删除到开头或者行尾; 2. ctrl+a/e: 移动光标从当前位置到行首或者行尾 ctrl+k: 从光标位置,向右删除,一直删除到行尾 ctrl+u: 从光标位置开始,向开头删除,一直删除到行首; 3. ctrl+x+x: 在行尾 和 光标的当前位置进行来回切换;如果光标本来就在行尾,那么是在开始和结尾之间切换;该命令还是比较有用的;
qsjs
2021-12-09
3710
sed的分组用法
在sed 启用扩展正则表达式之后,通常更多的配合分组功能进行使用,这时候需要注意的内容如下: A. 启用sed 的扩展正则表达式的方法是使用 -r 参数 B. 启用扩展正则表达式之后,小括号是可以自动识别为“分组的分割符号”,也就是说小括号不是普通的字符; C. \s 表示空格或者tab 键, 而 * 表示任意个数的字符,? 表示0 或者一个字符,+ 表示一个或者多个字符,而 . 表示任意字符 D. 启用分组以后,在对分组进行引用的时候,用 \1, \2 之类的表示方式,其中 \1就是小括号引用起来的第一个分组,依次类推,可以使用很多个分组 E. 在使用分组的时候,最常见的一种情形是:确认每个分组匹配的长度,这个遵循的一个重要原则是: .* 组合的长度取决于前面的组合以及后面的组合, .* 本身无法确定所匹配的字符串; 那么,如果要把 .* 作为分组的最后一部分怎么办呢,那这时候,其右边的边界就是 结束符号 $. F. 在sed 启用扩展正则表达式后,中括号 和大括号并不是作为普通字符看待,所以如果要把中括号, 大括号识别为普通字符,那么需要加上反斜杠;
qsjs
2021-12-09
2K0
关于使用jq 处理json格式的简单笔记
json格式包含有如下的基本类型: 数字,字符串,false, true, null 而由基本类型组成的复合类型有: 数组,对象;其中数组是以 [ ] 进行标记的,而对象是以 { } 进行标记;
qsjs
2021-12-09
6.1K0
shell脚本中的数组常见使用方式
shell中数组的定义是使用 小括号来表示的,其中数组元素之间用空格作为分隔,比如:
qsjs
2021-11-24
2.8K0
python关于threading.Thread的一顶点儿零散笔记
类的初始化函数__init__, 其传递的参数一般采用"具体参数, 可变长元组参数args,可变长字典类型参数 kwargs "相互配合的方式,比如threading.Thread 的初始化函数:
qsjs
2021-07-27
5530
在码云上创建git仓库并与pycharm关联
到https://gitee.com (码云)注册一个账号,然后 创建一个git 仓库, 这个仓库可以设置为私有或者public.
qsjs
2021-07-08
1.2K0
sshfs 文件系统权限的一点笔记
sshfs 是基于ssh的一个工具,用于挂载远端的文件系统到本地. 只要可以用ssh方式访问远端,那么就可以用sshfs 这个工具把有权限的目录挂载到本地来. 在linux系统中,有一个虚拟文件系统的概念,虚拟文件系统作为一个统一的文件系统接口,各种不同的文件系统的驱动只要实现虚拟文件系统接口就可以了,而驱动一般都不会运行在用户空间,而为了在用户空间也可以export 一个虚拟文件系统接口,fuse 这个工具就被创造出来了. fuse 就是实现用户空间export 出一个虚拟文件系统的接口. 基于fuse , sshfs 这个工具才可以很好的工作, mount时候指定的filesystem 类型就是fuse , 而一旦mount 之后,用df 看到的文件系统类型则是: fuse.sshfs .
qsjs
2021-06-21
1.9K0
数字证书系列--利用自签名证书实现认证的大致过程
对于自签名证书,完成自签名后,我们会获得如下的几个文件: CA 证书文件,CA证书的私钥,个人证书的私钥,获得CA签名的个人证书 ,证书请求文件(.csr) 通常证书请求文件在 获得签名后就没什么用处了;所以重要的是上面的两个证书以及两个私钥.
qsjs
2021-06-17
1.1K0
python中关于time/datatime的一些零碎笔记
好久没有写笔记了,今天简单记录下time/datetime的使用(不全,只是比较常用的一些做个记录,以备不时之需)
qsjs
2021-06-17
4490
使用selenium 的笔记总结
a. 其中 '//' 表示从匹配的节点开始找,也就是相对路径,这也是用的最多的一种情况. b. [@class='class_name'] 表示元素的属性值,在这里表示元素的class 属性的值为 class_name. 如果是多个属性进行限制,那么可以追加多个 [@attribute_name='attribute_value']来限制,从而保证可以匹配到相应的元素 c. 支持多层路径,上面路径基础上可以追加,比如: "//div[@class='class_name']/button[@type='submit']" , 如果是查找 节点元素,那么后面用类似: "//div[@class='class_name']/.." 的格式,这种情况在实际使用中会常遇到. d. input, button 等元素不支持class 属性,这个原因不清楚,但是使用的时候加上class 属性就找不到元素. div等元素支持class 属性,如果通过特定属性找不到,尝试更改属性的值来进行查找 e. 如果是使用xpath, 并通过使用text 属性来进行元素查找,那么表达式格式如下:
qsjs
2021-03-17
9400
ini配置文件以及利用python管理ini文件
在python里面有一个叫做configparser的module,可以用来操作ini文件,从而方便进行配置文件的管理工作.
qsjs
2021-03-04
1.5K0
python生成器函数的应用场景举例---为copy过程添加进度条显示
生成器的特点是可以迭代,通过dir 查看生成器的方法, 其中有next , send 方法,我们如果调用其next或者send方法都可以获得其下一个元素的值,我们可以用这种方式获得所有的生成器对应的元素,直到抛出 StopIteration 异常为止。一旦某个值已经输出了,那么我们是无法进行回溯的,就像一个“人生的单行道”一样,只能向前走,无法向后退。
qsjs
2020-09-28
1.1K0
点击加载更多
社区活动
Python精品学习库
代码在线跑,知识轻松学
热点技术征文第五期
新风口Sora来袭,普通人该如何把握机会?
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·干货材料·成员作品·最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档