linux性能——内存

原创 2018年04月16日 16:54:41
这一块主要是自己整理的  暂时东西比较少   以后会不定期更新!!!
这里的讲到的 “内存” 包括物理内存和虚拟内存,虚拟内存(Virtual Memory)把计算机的内存空间扩展到硬盘,物理内存(RAM)和硬盘的一部分空间(SWAP)组合在一起作为虚拟内存为计算机提供了一个连贯的虚拟内存空间,好处是我们拥有的内存 ”变多了“,可以运行更多、更大的程序,坏处是把部分硬盘当内存用整体性能受到影响,硬盘读写速度要比内存慢几个数量级,并且 RAM 和 SWAP 之间的交换增加了系统的负担。

在操作系统里,虚拟内存被分成页,在 x86 系统上每个页大小是 4KB。Linux 内核读写虚拟内存是以 “页” 为单位操作的,把内存转移到硬盘交换空间(SWAP)和从交换空间读取到内存的时候都是按页来读写的。内存和 SWAP 的这种交换过程称为页面交换(Paging),值得注意的是 paging 和 swapping 是两个完全不同的概念,国内很多参考书把这两个概念混为一谈,swapping 也翻译成交换,在操作系统里是指把某程序完全交换到硬盘以腾出内存给新程序使用,和 paging 只交换程序的部分(页面)是两个不同的概念。纯粹的 swapping 在现代操作系统中已经很难看到了,因为把整个程序交换到硬盘的办法既耗时又费力而且没必要,现代操作系统基本都是 paging 或者 paging/swapping 混合,swapping 最初是在 Unix system V 上实现的。
虚拟内存管理是 Linux 内核里面最复杂的部分,要弄懂这部分内容可能需要一整本书的讲解。VPSee 在这里只介绍和性能监测有关的两个内核进程:kswapd 和 pdflush。
  • kswapd daemon 用来检查 pages_high 和 pages_low,如果可用内存少于 pages_low,kswapd 就开始扫描并试图释放 32个页面,并且重复扫描释放的过程直到可用内存大于 pages_high 为止。扫描的时候检查3件事:1)如果页面没有修改,把页放到可用内存列表里;2)如果页面被文件系统修改,把页面内容写到磁盘上;3)如果页面被修改了,但不是被文件系统修改的,把页面写到交换空间。
  • pdflush daemon 用来同步文件相关的内存页面,把内存页面及时同步到硬盘上。比如打开一个文件,文件被导入到内存里,对文件做了修改后并保存后,内核并不马上保存文件到硬盘,由 pdflush 决定什么时候把相应页面写入硬盘,这由一个内核参数 vm.dirty_background_ratio 来控制,比如下面的参数显示脏页面(dirty pages)达到所有内存页面10%的时候开始写入硬盘。

# /sbin/sysctl -n vm.dirty_background_ratio
10

vmstat

继续 vmstat 一些参数的介绍,上一篇 Linux 性能监测:CPU 介绍了 vmstat 的部分参数,这里介绍另外一部分。以下数据来自 VPSee 的一个 256MB RAM,512MB SWAP 的 Xen VPS:

# vmstat 1
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 3 252696 2432 268 7148 3604 2368 3608 2372 288 288 0 0 21 78 1
0 2 253484 2216 228 7104 5368 2976 5372 3036 930 519 0 0 0 100 0
0 1 259252 2616 128 6148 19784 18712 19784 18712 3821 1853 0 1 3 95 1
1 2 260008 2188 144 6824 11824 2584 12664 2584 1347 1174 14 0 0 86 0
2 1 262140 2964 128 5852 24912 17304 24952 17304 4737 2341 86 10 0 0 4
  • swpd,已使用的 SWAP 空间大小,KB 为单位;
  • free,可用的物理内存大小,KB 为单位;
  • buff,物理内存用来缓存读写操作的 buffer 大小,KB 为单位;
  • cache,物理内存用来缓存进程地址空间的 cache 大小,KB 为单位;
  • si,数据从 SWAP 读取到 RAM(swap in)的大小,KB 为单位;
  • so,数据从 RAM 写到 SWAP(swap out)的大小,KB 为单位;
  • bi,磁盘块从文件系统或 SWAP 读取到 RAM(blocks in)的大小,block 为单位;
  • bo,磁盘块从 RAM 写到文件系统或 SWAP(blocks out)的大小,block 为单位;
上面是一个频繁读写交换区的例子,可以观察到以下几点:
  • 物理可用内存 free 基本没什么显著变化,swapd 逐步增加,说明最小可用的内存始终保持在 256MB X 10% = 2.56MB 左右,当脏页达到10%的时候(vm.dirty_background_ratio = 10)就开始大量使用 swap;
  • buff 稳步减少说明系统知道内存不够了,kwapd 正在从 buff 那里借用部分内存;
  • kswapd 持续把脏页面写到 swap 交换区(so),并且从 swapd 逐渐增加看出确实如此。根据上面讲的 kswapd 扫描时检查的三件事,如果页面被修改了,但不是被文件系统修改的,把页面写到 swap,所以这里 swapd 持续增加。

Linux中CPU与内存性能监测

在系统维护的过程中,随时可能有需要查看 CPU 使用率内存使用情况的需要,尤其是涉及到JVM,程序调优的情况,并根据相应信息分析系统状况的需要。 top命令 top命令是Linux下常用的性能分析工具...
  • chenleixing
  • chenleixing
  • 2015-06-29 09:05:09
  • 6865

【学习笔记】Linux下内存性能评估

Linux下内存性能评估通过free命令查看内存使用【说明】l  Mem中,Total=used+free,总内存1010MB,即大约1GBl  -/+buffers/cache中,free=free...
  • aovenus
  • aovenus
  • 2011-07-29 11:09:55
  • 644

嵌入式Linux内存与性能详解

  • 2012年09月08日 19:14
  • 1.45MB
  • 下载

Linux内存 性能调优

内存是影响Linux性能的主要因素之一,内存资源的充足与否直接影响应用系统的使用性能。 free命令:监控Linux内存使用状况。 由上图可知,空闲内存是free+buffers+cached...
  • oDaiLiDong
  • oDaiLiDong
  • 2015-06-11 18:38:28
  • 1593

linux环境下测试CPU和内存性能软件

  • 2012年02月10日 15:52
  • 30KB
  • 下载

Linux下内存性能评估

Linux下内存性能评估 通过free命令查看内存使用 【说明】 l  Mem中,Total=used+free,总内存1010MB,即大约1GB ...
  • huangbo201102
  • huangbo201102
  • 2017-06-28 17:09:45
  • 188

linux cpu 内存 硬盘 系统性能调试相关命令

cpu 内存 硬盘 等等与系统性能调试相关的命令必须熟练掌握,设置修改权限 tcp网络状态查看 各进程状态 抓包相关等相关命令 必须熟练掌握Linux iostat监测IO状态Linux系统出现了性能...
  • waltonhuang
  • waltonhuang
  • 2016-08-15 16:49:18
  • 800

基于Linux系统的性能测试

性能测试:CPU内存,硬盘IO读写,带宽速度,UnixBench和压力测试 一、CPU物理个数、内核、超线程、多核心       1、登录Terminal,执行:cat /proc/cpuinfo,...
  • panjican
  • panjican
  • 2016-04-19 16:22:28
  • 9655

linux内存管理之伙伴系统(内存分配)

一、Linux伙伴系统分配器 伙伴系统分配器大体上分为两类。__get_free_pages()类函数返回分配的第一个页面的线性地址;alloc_pages()类函数返回页面描述符地址。不管以哪种函...
  • bullbat
  • bullbat
  • 2012-01-08 21:11:37
  • 7541

linux中查看cpu和内存信息说明(性能优化干货)

性能优化:         就是找到系统处理中的瓶颈以及去除这些的过程,性能优化其实是对OS 各子系统达到一种平衡的定义,这些子系统包括了: CPU Memory IO Network      ...
  • u011001084
  • u011001084
  • 2016-10-17 09:56:10
  • 1326
收藏助手
不良信息举报
您举报文章:linux性能——内存
举报原因:
原因补充:

(最多只允许输入30个字)