linux性能优化实战-内存性能指标
转自:https://blog.csdn.net/san_77227487/article/details/87938546https://blog.csdn.net/zxcc1314/article/details/86751559 内存映射Linux内核给每个进程提供了一个独立的连续虚拟地址空间(独立!可以将进程内存隔离)。 每个进程的虚拟地址分为内核空间和用户空间。但内核空间,其实关联的都是相同的物理内存。进程用户态只能访问用户空间内存;内核态可以访问内核空间内存。 内存映射就是将虚拟内存地址映射到物理内存地址,内核为每个进程都维护了一张页表,记录映射关系。 页的大小为4KB,为了解决页过多,Linux提供了两种机制多级页表和大页(HugePage)。 大页就是比普通页更大的内存块。 当访问虚拟地址在页表中找不到时,会产生缺页异常,进入内核空间分配物理内存、更新进程页表,最后再返回用户空间,恢复进程的运行。 虚拟内存空间分布 上图为32位系统虚拟内存空间分布。 只读段,包括代码和常量等。 内存分配 对小块内存(小于 128K),C 标准库使用 brk() 来分配,通过移动堆顶的位置来分配内存。这些内存释放后并不会立刻归还系统,而是被缓存起来,这样就可以重复使用。 malloc() 申请内存后,内存并不会立即分配,而是在首次访问时,才通过缺页异常陷入内核中分配内存。 理解内存中的Buffer和Cache Buffers 是内核缓冲区用到的内存,对应的是 /proc/meminfo 中的 Buffers 值。 Buffers 是对原始磁盘块的临时存储,也就是用来缓存磁盘的数据,通常不会特别大(20MB 左右)。 一、IO性能指标二、IO性能工具三、基本思路1. 先用 iostat 发现磁盘 I/O 性能瓶颈; 2. 再借助 pidstat ,定位出导致瓶颈的进程; 3. 分析进程的 I/O 行为; 4. 结合应用程序的原理,分析这些 I/O 的来源。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- linux – Monit 5.5仅绑定到localhost,但应该全部绑定
- 别小瞧了linux,安卓、华为的自研系统,均源自linux!
- document – 在couchdb中使用curl删除字段
- supervisord – 服务器’unix_http_server’在没有任何HTTP
- linux – 如何让windows xp对kerberos或heimdal进行身份验证
- linux – 我有WHM root访问权限但无法使用SSH连接
- HTTP2.0学习 与 Nginx和Tomcat配置HTTP2.0
- redhat – RHEL 5.5服务器将大多数设备列为“未知设备”
- linux – 如何验证VMWare ESX主机上的CentOS Guest是否正在
- linux内核 – 每个线程如何确定一个Linux内核任务的堆栈指针