上一页 1 2 3 4 5 6 7 8 ··· 10 下一页

2024年11月7日

libvirt/qemu设置numa distance

摘要: qemu可以模拟numa,设置numa内的memory,cpu,numa间distance。 qemu-system-x86_64 --help | grep numa -numa node[,mem=size][,cpus=firstcpu[-lastcpu]][,nodeid=node][,in 阅读全文

posted @ 2024-11-07 11:10 半山随笔 阅读(99) 评论(0) 推荐(0)

2024年11月6日

schbench源码分析

摘要: schbench是meta开发的linux调度器benchmark工具,用来测试线程wakeup到占有cpu之间的延迟。 如何使用schbench? schbench -t 2 -m 1 在schbench中有两个重要的概念,woker线程和message线程。message线程由主线程创建,wor 阅读全文

posted @ 2024-11-06 12:10 半山随笔 阅读(207) 评论(0) 推荐(0)

2024年10月31日

bcc测量函数执行时间

摘要: 获取函数的执行时间对性能分析十分有益,这里给出一个示例来测量kernel 函数的执行时间。 kprobe可用来在函数执行的开始加入探测点,kretprobe可以在函数返回前加入探测点,分别在这个两个探测获取时间,其差值可以作为函数的执行时间。相对ftrace,这种方式要精确很多。下面是一个例子,测量 阅读全文

posted @ 2024-10-31 11:47 半山随笔 阅读(56) 评论(0) 推荐(0)

2024年10月26日

tlb shootdown

摘要: 如果一个进程被调度出去,相应的该进程的页表项应该从tlb中刷掉。于是tlb在每次进程换入的时候都是miss的。为了解决这个问题,芯片设计厂商引入了pcid/asid这种技术。通过在tlb上给每个进程增加标识,进程在调度出去的时候无需刷tlb,这样在切入的时候tlb还在。尽管这会提升tlb的命中率但同 阅读全文

posted @ 2024-10-26 19:44 半山随笔 阅读(61) 评论(0) 推荐(0)

2024年9月26日

在centos 8上编译qemu

摘要: 说实话,如果不是有些机器在用centos,真的不想用它,生态不好,没有ubuntu那么方便。真不知道为啥那么多人用。希望centos赶紧消失!!! qemu也是个挺难编译的东西,依赖的库太多,很多比较小众,对版本还有要求。这里只有一个建议,编译跟centos匹配的qemu。qemu在演进,cento 阅读全文

posted @ 2024-09-26 19:06 半山随笔 阅读(76) 评论(0) 推荐(0)

2024年9月14日

测量读写msr寄存器的耗时

摘要: msr寄存器的读写有两个指令rdmsr和wrmsr。他们可以用来读写一些系统相关的寄存器。格式是: 首先向ecx写入msr寄存器的地址,这要查一下手册。对于rdmsr,会将读到的信息,一个64bit数据,高32bit放到edx,低32存访到eax。对于wrmsr,除了向ecx写入msr寄存器的地址, 阅读全文

posted @ 2024-09-14 18:16 半山随笔 阅读(65) 评论(0) 推荐(0)

2024年9月11日

记一次性能分析过程

摘要: 初入性能分析领域,还是一个小学生。记录一下小学生的分析过程。 问题的起因 在一台服务器上测试specjbb。如果使用cgroup限制4个cpu,而分配cpuset为8个cpu(简写成4/8)性能会很差,而4/7,5/8性能会好很多。 使用perf top,perf sched等观察,并没有发现有用的 阅读全文

posted @ 2024-09-11 19:20 半山随笔 阅读(37) 评论(0) 推荐(0)

2024年9月2日

共享LLC来减少ipi中断

摘要: linux kernel唤醒进程的步骤: select task rq,enqueue,active task。 对于enqueue调用链是:try_to_wake_up->ttwu_queue->ttwu_queue_wakelist static bool ttwu_queue_wakelist 阅读全文

posted @ 2024-09-02 15:59 半山随笔 阅读(52) 评论(0) 推荐(0)

2024年8月21日

fork: Cannot allocate memory的解决办法

摘要: 在一台跳板机上执行跳转时总是出现如下错误: fork: Cannot allocate memory 或者 Failed to create child process: Cannot allocate memory 或者 No more processes 但是查看内存发现还是有很多内存可以用的。 阅读全文

posted @ 2024-08-21 10:15 半山随笔 阅读(228) 评论(0) 推荐(0)

2024年8月8日

golang build 代理timeout问题

摘要: 编译golang项目时常常遇到下载包网络问题。 sigs.k8s.io/yaml@v1.3.0: Get "https://proxy.golang.org/sigs.k8s.io/yaml/@v/v1.3.0.zip": dial tcp 142.250.217.113:443: i/o time 阅读全文

posted @ 2024-08-08 18:09 半山随笔 阅读(249) 评论(0) 推荐(0)

上一页 1 2 3 4 5 6 7 8 ··· 10 下一页

导航