• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > linux 内存性能调优

linux 内存性能调优

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了linux系统性能调优,linux性能调优,linux性能优化,linux性能测试,linux 查看性能等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

linux 内存性能调优


linux 内存性能调优

linux内存系统简述

关于linux内存系统我们至少应该了解什么?

linux 系统中内存地址分为虚拟地址和物理地址,虚拟地址必须通过mmu映射成物

理地址。为了完成虚拟地址到物理地址的映射,linux内核中必须为每一个用户态

进程维护一个页目录和相应的页表项。一般系统中页表中一页大小为4K,

利用getconf PAGESIZE可以获取系统中页大小。

linux伙伴系统,为了将系统中的内存页做相应的管理,linux内核将系统中内存为

分为不同的node,zone. 系统将不同cpu访问速率的内存归纳为不同的node.

zone表示同一个node不同内存区域,一般分问DMA, NORMAL, HIGHMEM.

每一个ZONE上面有active_list,inactive_list.

在每一个ZONE中需要管理这个ZONE中的活动页和非活动页,这样就方便每个ZONE中

页面的回收

nr_inactive_anon 3949

nr_active_anon 3299

nr_inactive_file 7305

nr_active_file 3182

nr_unevictable 0

页面交换,linux可以将系统中匿名页交换到交换分区或者交换文件中去,当系统

中的内存紧张时。

swapon -s 查看系统中交换分区或者交换文件使用情况

swapon -a 开启系统的交换功能

swapoff -a 关闭系统的交换功能

系统中缓存类型分为页缓存和块缓存。当系统去读取文件系统中的文件时,系统会

将读到的文件的内容缓存到一个地址空间中,组成这个地址空间的内存页就是页缓

存,叫做cache.

系统在读取文件系统中类似目录,超级块或者管理块时,读取到系统中的内存页中

,这种页面叫做块缓存,也叫做buffer.

linux如果按页管理分配内存,对较小的内存分配是一种严重的浪费。slab内存分

配器解决内核空间较小的内存分配问题。slab就是为了满足内核中各个模块特定大

小内存的快速分配,就从伙伴系统中要出内存页,自己建立一个相对独立的内存池

子,向特定的内核模块分配特定大小的内存。

slabtop

cat /proc/slabinfo

linux系统中内存使用分类

  1. 内核系统中分配的内存
  2. 用户态代码段,数据段,堆空间,栈空间
  3. 文件地址空间缓存,块缓存
  4. 文件在用户空间的地址映射消耗的内存.
  5. mmap 匿名映射的页,shmem共享内存使用的页.

可回收的页和不可回收的页

上面总结了linux中内存页的不同种类,上面不同类型的页面基本上可以分为两种不同的类型,一种是可回收页面,另外一种为不可以回收的页面。除了第一种,内核系统中分配的内存为不可回收的外,其它类型的页面都是可以回收的页面。

可回收页面分类

  1. 匿名页面需要将页面内容交换到交换设备或者文件才能回收该页面
  2. 文件地址空间缓存,块缓存通过回写页面内容后再回收页面.

如何查看系统中不同类型内存数量

使用这个命令可以看到系统中空闲内存数量,buffer缓存数量,页缓存数量.同时可以看到交换分区换入,换出页面的数目.

root@localhost:~# vmstat 1 -S m

procs-----------memory---------- ---swap-- -----io---- -system-- ----cpu----

rb swpd free buffcache si sobi bo incs us sy id wa

21 0 0 665 69 508 0 0 0 0 19 5 38 3 59 0

19 0 0 665 69 508 0 0 0 0 2161 3112 97 4 0 0

20 0 0 665 69 508 0 0 0 0 1903 3394 97 3 0 0

查看进程内存使用情况

top

shift + m

linux系统中的进程按照消耗内存大小进行排列,VIRT表示虚拟地址空间内存大小,RES表示实际内存使用大小。

shift + p

linux系统中的进程按照消耗CPU大小进行排列

使用pmap查看进程内存使用情况

pmap pid

我们可以看到整个进程占用的虚拟内存的情况

查看slab使用情况

slabtop

cat/proc/slabinfo

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • linux 内存性能调优

相关文章

  • 2017-05-26PagerTabStrip在ViewPager的页面中添加标题显示,viewpager添加页面
  • 2017-05-26android 仿摩拜单车共享单车进度条实现StepView,androidstepview
  • 2017-05-26Android系统默认对话框添加图片,
  • 2017-05-26For each循环中使用remove方法。,eachremove
  • 2017-05-26Linux(CentOS 7)命令行模式安装VMware Tools
  • 2017-05-26Android之利用HTTP网络通信实现与PHP的交互(三),android网络通信
  • 2017-05-26Android开发之ActionBar,androidactionbar
  • 2017-05-26achartengine/MPAndroidChart——图表实现之Java
  • 2017-05-26org.gradle.api.internal.tasks.DefaultTaskInputs$TaskInputUnionFileCollection cannot be cast to org.gradle.api.internal.file.collections.DefaultConfigurableFileCollection,gradletaskinputs
  • 2017-05-26Android 检查手机网络是否可用,android手机

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Android学习笔记-EditText(输入框)(一),android-edittext
    • Android中使用Notification实现宽视图通知栏(Notification示例二),notification大视图
    • Android 之 Intent(意图),androidintent意图
    • 与MySQL传统复制相比,GTID有哪些独特的复制姿势?
    • Linux内核系列—操作系统开发之HelloWorld,linuxhelloworld
    • Android游戏开发之游戏帧动画的播放与处理,android游戏开发
    • 安卓第十四天笔记-内容提供者(ContentProvider),contentprovider
    • Android菜单(动画菜单、360波纹菜单),android波纹
    • 详解Android微信登录与分享,详解android分享
    • 安卓开源项目周报0208,安卓开源项目0208

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有