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

皮振伟的专栏

专栏作者
108
文章
297047
阅读量
78
订阅数
[linux][kvm]模拟大量虚拟机遇到的问题
前言: 网络的同事希望模拟大量的虚拟机(万台数量级),又受到物理资源的限制,只能使用几台物理机。 遇到了各种奇奇怪怪的问题。 分析:
皮振伟
2019-05-06
1.3K0
[linux][system] gettimeofday的几种实现方法
前言: 有同事讨论到gettimeofday的性能问题。想起来大约四五年前,在linux-2.6.x上的时候,用一种很极端的方法实现过time函数。 下面就简单分析一下几种gettimeofday的实现。当然,实现方法是包括但不限于以下。 分析: 1,int 0x80 在早期阶段,x86上的syscall通过int 0x80实现的。IRQ可以让CPU中断当前的处理,陷入到Ring0中,当触发的IRQ号是0x80的时候,就进入到了对应的handler里面处理。处理完成后,返回Ring3,用户态进程拿到结果。 目前的主流的x86,已经放弃这种使用方式了。因为成本比较高。 2,syscall intel后来提供了新的指令syscall,SDM介绍如下:
皮振伟
2019-03-07
2.6K0
[linux][qemu]PVPanic的实现原理以及应用
在虚拟化场景下,我们尽量会尝试使用带外监控的方式,来发现虚拟机的异常。pvpanic就是一种常见的方式,虚拟化场景的windows蓝屏检查也是基于如此。
皮振伟
2018-12-07
2.7K0
[x86][kvm]avx512指令相关
前文《[x86][linux]AVX512指令引起的进程crash》中,介绍了一次因为avx512指令导致的进程crash。
皮振伟
2018-10-23
5K0
[linux][nginx]nginx的graceful shutdown和worker shutdown timeout
前言: 某大佬问作者,nginx做proxy的时候,重新加载配置的时候,会不会影响已有的连接? 作者基于too young too simple的认知:client和proxy之间有established连接,proxy和upstream直接有established连接;重启proxy就以为着重新启动proxy worker进程,kernel在进程exit的试试,会关闭掉所有的fd(socket本身就是fd的一种),就会发生重新连接。。。 然而,作者还是用最新的nginx做了一下实验,nginx实力打脸!作者查了一下git log,大约有两个feature起的影响比较大:graceful shutdown和worker shutdown timeout 分析: 1,client – proxy – upstream环境
皮振伟
2018-07-23
3.4K0
[linux][memory] 物理内存管理
前言: 书接上回《内存映射技术分析》,继续来分析一下linux的物理内存管理。 分析: 1,物理内存 PC上的内存条,或者手机上的内存芯片,物理上实实在在的内存,就是物理内存。大小是硬件决定的,一般就是一个起始地址,加上大小。地址如何分配呢?PC上作者也不太懂,听闻BIOS可以配置。在ARM上,作者曾经看过一份电路图,当时的图上,使用32bit的高2bit作为chip select,后面的30bit作为地址总线,看过chip select信号之后,作者才明白为什么在代码上要配置起始的地址不是0,因为硬件
皮振伟
2018-04-09
2.6K0
[linux][memory] 内存回收
前言: 前文《内存映射技术分析》描述了虚拟内存的管理、内存映射;《物理内存管理》介绍了物理内存管理。 本篇介绍一下内存回收。内存回收应该是整个Linux的内存管理上最难理解的部分了。 分析: 1,PFRA Page Frame Reclaim Algorithm,Linux的内存回收算法。 不过,PFRA和常规的算法不同。比如说冒泡排序或者快速排序具有固定的时间复杂度和空间复杂度,代码怎么写都差不多。而PFRA则不然,它不是一个具体的算法,而是一个策略---什么样的情况下需要做内存回收,什么样的page
皮振伟
2018-04-09
3.2K0
[linux][kernel]list_del引起的kernle die分析
前言: 构造网络的恶劣环境:中断,恢复,中断,恢复。。。 复现了到kernel die的BUG。经过分析,是对同一个entry执行了两次list_del导致。 Double deletion引起的问题,这里分享一种分析类似问题的方法。 分析: 1,call trace 作者看到了两份不同的call trace,不过它们最后的IP是相同的,有可能是同一个BUG。 需要注意的是,下面两份trace的RIP和RCX寄存器。 CPU: 15 PID: 23529 Comm: lvm Tainted: G
皮振伟
2018-04-09
2.9K1
没有更多了
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档