• 摘要:3.3内存瓶颈OnaLinuxsystem,manyprogramsrunatthesametime.Theseprogramssupportmultipleusers,andsomeprocessesaremoreusedthanothers.Someoftheseprogramsuseaportionofmemorywhiletherestare“sleeping.”Whenanapplicationaccessescache,theperformanceincrease
    • 3.3 内存瓶颈
      On a Linux system, many programs run at the same time.

      These programs support multiple users, and some processes are more used than others.

      Some of these programs use a portion of memory while the rest are “sleeping.”

      When an application accesses cache, the performance increases because an in-memory access retrieves data,

      thereby eliminating the need to access slower disks.

      在linux系统中,在同一时间有支持多个用户的多个程序在运行,它们对内存使用有多有少;

      应该程序访问内存数据的效率要比磁盘高;

      The OS uses an algorithm to control which programs will use physical memory and which are paged out.

      This is transparent to user programs. Page space is a file created by the OS on a disk partition

      to store user programs that are not currently in use. Typically, page sizes are 4 KB or 8 KB.

      In Linux, the page size is defined by using the variable EXEC_PAGESIZE in the include/asm-<architecture>/param.h

      kernel header file. The process used to page a process out to disk is called pageout.

      操作系统使用一定的策略来决定哪些程序将使用物理内存,哪些程序将被从内存页面中替出;

      这些操作对用户程序来说是透明的;

      页面空间是由操作系统在磁盘划分上创建的文件,用来存储当前未在使用的用户程序;

      通常,页面大小为 4KB 或 8KB;

      在Linux系统中,页面大小由内核的头文件:

      include/asm-<architecture>/param.h

      中的宏 EXEC_PAGESIZE 来定义;

      进程使用的页面被替换到磁盘称为换页 或 页面溢出;

      3.3.1 Finding memory bottlenecks

      寻找内存瓶颈

      文章的这部分使用了KDE的一个工具KDE System Guard来做内存检测;

      KDE,K桌面环境(Kool Desktop Environment)的缩写。

      一种著名的运行于 Linux、Unix 以及FreeBSD 等操作系统上面自由图形工作环境,

      整个系统采用的都是 TrollTech 公司所开发的Qt程序库(现在属于Digia公司)。

      KDE 和 Gnome 都是 Linux 操作系统上最流行的桌面环境系统。

      Start your analysis by listing the applications that are running on the server.

      Determine how much physical memory and swap each application needs to run.

      Figure 3-1 on page 83 shows KDE System Guard monitoring memory usage.

      ?


      图 3.1 KDE System Guard内存监测

      ?The indicators in Table 3-1 can also help you define a problem with memory.




      表3-1

      Paging and swapping indicators

      换页和交换的意义

      In Linux, as with all UNIX-based operating systems, there are differences between paging and swapping.

      Paging moves inpidual pages to swap space on the disk;

      swapping is a bigger operation that moves the entire address space of a process to swap space in one operation.

      在Linux系统中,分布和交换是不同的;

      换页是将独立的页面移到磁盘的交换空间;

      交换是更大的操作,它将整个进程的地址空间一次性移到磁盘的交换空间;

      Swapping can have one of two causes:

      导致交换的原因有两个

      . A process enters sleep mode.

      进程进入 sleep 模式

      This usually happens because the process depends on interactive action and editors, shells,

      and data entry applications spend most of their time waiting for user input. During this time,

      they are inactive.

      这种情况通常是因为进程需要和编辑器,shell等交互,以及应用程序需要等待用户的数据输入;

      在这是,它是非活动的;

      . A process behaves poorly.

      进程的异常行为

      Paging can be a serious performance problem when the amount of free memory pages falls

      below the minimum amount specified, because the paging mechanism is not able to handle

      the requests for physical memory pages and the swap mechanism is called to free more pages.

      This significantly increases I/O to disk and will quickly degrade a server’s performance.

      当空闲内存页面过小时,换页会导致严重的性能问题,

      因为换页机制不能处理物理内存页面的请求,而交换机制将会调用更多的空闲内存页面。

      这会急剧增加磁盘的I/O, 并快速地拉低服务器的性能

      If your server is always paging to disk (a high page-out rate), consider adding more memory.

      However, for systems with a low page-out rate, it might not affect performance.

      如果服务器总是在换页(一个很高的换页率),就需要考虑增加内存;

      当然,系统换页率低时,它不会影响性能;

      3.3.2 Performance tuning options

      性能调整选项

      It you believe there is a memory bottleneck,

      consider performing one or more of these actions:

      如果你确认是内存的瓶颈,可以考虑用下面的办法来解决

      . Tune the swap space using bigpages, hugetlb, shared memory.

      调整交换空间,使用大页面,大块内存,共享内存

      . Increase or decrease the size of pages.

      增加或降低页面的大小;

      ?

      . Improve the handling of active and inactive memory.

      改进对活动和非活动内存的处理;

      . Adjust the page-out rate.

      调整换页率;

      ?

      . Limit the resources used for each user on the server.

      限制服务器上每个用户的可用资源;

      . Stop the services that are not needed, as discussed in “Daemons” on page 97.

      停掉不需要的服务

      . Add memory.

      增加内存;

《linux性能及调优指南》 3.3 内存瓶颈的更多相关文章

  1. 《Linux 性能及调优指南》写在后面的话

    感谢飞哥的翻译. 目前飞哥 (http://hi.baidu.com/imlidapeng)的网址已经不能访问了. <Linux 性能及调优指南>这本书的原文地址:http://www.r ...

  2. 《linux性能及调优指南》 3.5 网络瓶颈

    3.5 Network bottlenecks A performance problem in the network subsystem can be the cause of many prob ...

  3. 《Linux 性能及调优指南》2.3 监控工具

    翻译:飞哥 (http://hi.baidu.com/imlidapeng) 版权所有,尊重他人劳动成果,转载时请注明作者和原始出处及本声明. 原文名称:<Linux Performance a ...

  4. 《Linux 性能及调优指南》1.5 网络子系统

    翻译:飞哥 (http://hi.baidu.com/imlidapeng) 版权所有,尊重他人劳动成果,转载时请注明作者和原始出处及本声明. 原文名称:<Linux Performance a ...

  5. 《Linux性能及调优指南》1.3 Linux文件系统

    翻译:飞哥 (http://hi.baidu.com/imlidapeng) 版权所有,尊重他人劳动成果,转载时请注明作者和原始出处及本声明. 原文名称:<Linux Performance a ...

  6. 《Linux 性能及调优指南》1.4 硬盘I/O子系统

    翻译:飞哥 (http://hi.baidu.com/imlidapeng) 版权所有,尊重他人劳动成果,转载时请注明作者和原始出处及本声明. 原文名称:<Linux Performance a ...

  7. 《Linux 性能及调优指南》3.1 确认瓶颈

    翻译:飞哥 ( http://hi.baidu.com/imlidapeng ) 版权所有,尊重他人劳动成果,转载时请注明作者和原始出处及本声明. 原文名称:<Linux Performance ...

  8. Linux性能及调优指南1.2之Linux内存架构

    本文为IBM RedBook的Linux Performanceand Tuning Guidelines的1.2节的翻译原文地址:http://www.redbooks.ibm.com/redpap ...

  9. 《Linux 性能及调优指南》1.6 了解Linux性能指标

    翻译:飞哥 (http://hi.baidu.com/imlidapeng) 版权所有,尊重他人劳动成果,转载时请注明作者和原始出处及本声明. 原文名称:<Linux Performance a ...

  10. Linux性能及调优指南(翻译)之Linux进程管理

    本文为IBM RedBook的Linux Performanceand Tuning Guidelines的1.1节的翻译原文地址:http://www.redbooks.ibm.com/redpap ...

随机推荐

  1. 我发起了一个 .Net 平台上的 NewSql 数据库 BabanaDB

    发起这个项目的起因, 是偶然看到一个网友发的 MongoDB 的 新闻, 我想, 像  MongoDB  这样的 非关系数据库 ,随时 都可以写 很多个, 真正 难写 的 是  关系数据库, 非关系数 ...

  2. CSS矩形盒子的四个边界

    CSS下这些矩形盒子由标准盒模型描述.这个模型描述元素内容占用空间.盒子有四个边界:外边距边界margin edge, 边框边界border edge, 内边距边界padding edge 与 内容边 ...

  3. Oracle11g 密码延迟认证导致library cache lock的情况分析

    在 Oracle 11g 中,为了提升安全性,Oracle 引入了『密码延迟验证』的新特性.这个特性的作用是,如果用户输入了错误的密码尝试登录,那么随着登录错误次数的增加,每次登录前验证的时间也会增加 ...

  4. MySQL 遇到错误集锦

    MySQL 规定:varchar必须指定长度,否则报错:ERROR 1064 (42000) 只有一列时,primary key 直接写在这一列的后面: 没有定义主键时,提示错误:ERROR 1075 ...

  5. pip报错解决:EnvironmentError: mysql_config not found

    centos7下使用python类库MySQL-python操作mysql.pip安装类库:pip install MySQL-python报错提示:mariadb EnvironmentError: ...

  6. 如何编译运行HanLP自然语言处理包

    master分支 对于master分支,编译方法如下: git clone  https://github.com/hankcs/HanLP.git mvn install -DskipTests · ...

  7. 大数据框架hadoop服务角色介绍

    翻了一下最近一段时间写的分享,DKHadoop发行版本下载.安装.运行环境部署等相关内容几乎都已经写了一遍了.虽然有的地方可能写的不是很详细,个人理解水平有限还请见谅吧!我记得在写DKHadoop运行 ...

  8. MYSQL优化浅谈,工具及优化点介绍,mysqldumpslow,pt-query-digest,explain等

    MYSQL优化浅谈 msyql是开发常用的关系型数据库,快速.稳定.开源等优点就不说了. 个人认为,项目上线,标志着一个项目真正的开始.从运维,到反馈,到再分析,再版本迭代,再优化… 这是一个漫长且考 ...

  9. Debian下Netbeans编辑器字体锯齿现象

    第一步:到你netbeans安装目录下的etc目录下,找到netbeans.conf文件,打开准备编辑:第二步:在netbeans_default_options后面加上-J-Dawt.useSyst ...

  10. 写了一个hiero检查任务渲染结果的脚本

    基本思路是写了一个时间判断函数(postSequence_check)来对比transcode任务提交时间和目标文件夹内文件的修改时间来确定渲染是否成功执行,然后通过Hiero提供的postSeque ...