阿萍的博客

阿萍的博客

基础篇:Linux内存是怎么工作的?

1 内存映射每个进程都有独立的虚拟空间,虚拟空间包含了用户空间和内核空间,不同进程的内核空间关联的都是相同的物理内存。内存映射,其实就是将虚拟地址映射为物理内存地址。内核为每个进程都维护了一张页...

案例篇:如何利用系统缓存优化程序的运行效率?

1 缓存命中率缓存命中率,是指通过缓存获取数据的次数占所有数据请求次数的比例。cachestat 提供了整个操作系统缓存的读写命中情况。cachetop 提供了每个进程的缓存命中情况。安装好 b...

案例篇:内存泄漏了,我该如何定位和处理?

对于动态申请的内存,如果忘记释放,不仅程序自身无法访问,系统也无法将它再次分配给别的程序。内存泄露不断累积,甚至会耗尽系统内存。虽然系统可通过 OOM 杀死进程,但是在 OOM 之前已经引发了一...

案例篇:为什么系统的 Swap 变高了

系统内存不足时,可能会进程内存回收。对于文件页的回收,包括缓存,缓冲区和通过内存映射获取的文件映射页,大部分可以直接清空。如果被应用程序修改过,且暂时还没写入磁盘的数据(脏页),需要先写入磁盘,...

软中断

中断处理程序响应中断时,会临时关闭中断。导致上一次中断处理完成之前不会响应别的中断,导致中断丢失。Linux 将中断分成了上下两半部:上半部直接处理硬件请求,为硬中断,特点是快速执行。下半部由内...

for 循环并行

注意:在 for 循环内部,仍然要注意写互斥,比如,对 map 的写操作就不是线程安全的,除非 map 中已经预先填好了 key,这时候更新 value 是线程安全的,因为不同的线程中获得的 k...

基础篇:某个应用的 CPU 使用达到 100% 怎么办

1 查看 CPU 使用率在查看 CPU 使用率时,top 默认为 3s 的间隔,ps 使用的是进程的整个生命周期。使用 top 时,按下数字 1 就可以切换到每个 CPU 的使用率。pidsta...

案例篇:CPU 性能排查

1 系统 CPU 利用高,但为啥找不到高 CPU 应用?top 显示 CPU 利用率较高,但是每个进程的 CPU 利用率不高,且从 pidstat 也看出各 CPU 的利用率不高。继续查看 to...

基础篇:某个应用的 CPU 使用达到 100% 怎么办

1 查看 CPU 使用率在查看 CPU 使用率时,top 默认为 3s 的间隔,ps 使用的是进程的整个生命周期。使用 top 时,按下数字 1 就可以切换到每个 CPU 的使用率。pidsta...

案例篇:CPU 性能排查

1 系统 CPU 利用高,但为啥找不到高 CPU 应用?top 显示 CPU 利用率较高,但是每个进程的 CPU 利用率不高,且从 pidstat 也看出各 CPU 的利用率不高。继续查看 to...