
linux
wllabs
一直努力学习和工作中,虽然不如意,但是还是要努力,希望以后越来越好。求各种机会。
展开
-
信号处理,信号队列
最近几天在看信号,对实时信号的实时性不是很理解,今天看了下 __dequeue_signal 差不多理解了,一个实时信号可以有多个实时队列,在signal集合里一个signal可能有多个signal队列。信号,有信号队列,有信号集sigpending是信号pending的结构体,里面有sigqueue的链表,和signal的一个集合,这个集合,实际是一个 unsigned long 64位的类型的值,所以也可以这个也限制了信号的数据,也只能支持64个信号。typedef unsigned lo原创 2020-09-22 20:59:18 · 557 阅读 · 0 评论 -
进程guesttime的统计计算流程
主要流程是qemu调用kvm_vcpu_ioctl(cpu, KVM_RUN, 0)后陷入内核态,然后kvm模块会进入vcpu_run,等待被调度,如果被调度成功,则会进入kvm_guest_enter,并把进程task_struct current->flags |= PF_VCPU;,标识进入guest运行。当时间片执行完成后会执行kvm_guest_exit,删除之前设置的PF_...原创 2020-03-16 21:25:05 · 657 阅读 · 1 评论 -
内存Available 是怎么计算的
前段时间在看/proc/meminfo,计算内核态内存,用户态内存,还有X内存。在看这些的时候发现个问题就是 MemAvailable 竟然大于 Buffers + Cached + MemFree,因为在我印象里一直认为Available会少于buff + cache + free的。于是扒代码分析:...原创 2020-03-04 15:57:27 · 3449 阅读 · 2 评论 -
计算内核泄漏内存值
最近看物理机有些内存不知道去哪里了,于是总结了下:通过/proc/meminfo 统计内核泄漏值,用总内存(MemTotal) 减去未使用的内存和内核以及用户态程序所使用的内存 (MemFree + MemKernel + MemLru)。这样就能统计出不明去向的内存值,也可以是说是内核内存泄漏了吧。未使用的内存: MemFree = cat /proc/meminfo | grep ...原创 2019-09-20 14:23:34 · 353 阅读 · 0 评论 -
linux c open direct 方式写入,memalign
前段时间准备以direct方式写入文件,结果一直写不进去内容,后面发现必须要512字节对齐才可以。使用new或者malloc分配的内存是无法在O_DIRECT选项下工作的,必须使用posix_memalign(或valloc, memalign,这两个函数已经被标记为废弃)。读写操作的传输数据大小和缓冲区地址都需要按照一定的规则对齐:Linux下,对于不同的文件系统和内核版本,需要的...原创 2019-09-12 12:57:31 · 971 阅读 · 0 评论 -
getrlimit setrlimit 解析
有时间详细写下。先标记下原创 2019-09-03 09:26:01 · 161 阅读 · 0 评论 -
libguestfs是如何获取操作系统及arch和文件系统以及MBR
arch: 64还是32使用的是file. windows: file system32/windows/cmd.exelinux: file /bin/ls 如果不存在会继续遍历其它可执行文件。MBR:sfdisk --print-id /dev/sda 1文件系统:blkid -c /dev/null -o "value" -s TYPE ...原创 2019-08-28 16:36:32 · 755 阅读 · 0 评论 -
max_dgram_qlen
nginx+uwsgi,当并发达到500以上是,会报502错误本来用unix socket是为了提高性能,却不支持大并发,经查发现是系统内核限制导致不稳定,修改下列内核参数解决调整以下参数 sysctl.confnet.unix.max_dgram_qlen = 60000原创 2018-01-23 12:11:49 · 1677 阅读 · 0 评论 -
排查机器 负载过高, ssh进不去问题
排查路径:1、一开始怀疑可能是io阻塞导致,于是使用iostat -xdm 1 100,查看 io状况,发现io不高 2、于是使用top,查看系统负载情况。发现系统负载很高,但是cpu使用率比较低,同时wa也不多,难道是正在执行的进程数很多。3、另起一个窗口 执行 vmstat 1 10 查看系统状态,没有发现异常,于是怀疑是不是进程D状态导致。原创 2017-11-29 20:29:47 · 12851 阅读 · 2 评论 -
解析 virDomainDef 结构体
virDomainDef 结构体/* * Guest VM main configuration * * NB: if adding to this struct, virDomainDefCheckABIStability * may well need an update */typedef struct _virDomainDef virDomainDef;type原创 2017-11-13 10:37:29 · 589 阅读 · 1 评论 -
rpm 制作与spec 解析
先点位,什么时候有时间了就解析下。https://raw.githubusercontent.com/openstack/rpm-packaging/master/openstack/cinder/cinder.spec.j2https://yq.aliyun.com/articles/27261原创 2017-10-12 11:57:38 · 588 阅读 · 0 评论 -
linux shell shift
看到一个shell里很多shift很是吃惊,这是个什么语法于是查了下,是左移参数,shift可以用来向左移动位置参数。Shell的名字 $0第一个参数 $1第二个参数 $2第n个参数 $n所有参数 $@ 或 $*参数个数 $#例子:#!/bin/bashif [ $# -lt 1 ]; then echo "Usage:原创 2017-10-11 11:40:03 · 360 阅读 · 0 评论 -
“bc: command not found ” 解决
在编译内核时,竟然报 “bc: command not found ” ,第一次见到这个。于是搜索了下,原来还真有这个命令,还是个命令行下的计算机。不过不知道编译内核需要这个做什么。这个东西估计用的人也很少,不过如果在命令行下要计算数也是个不错的工具吧。yum -y install bc 一下就可以解决了原创 2017-07-31 19:59:23 · 15124 阅读 · 0 评论