swap的linux swap使用率率这么高,还有硬改的必要吗

Mac 有没有必要取消 swap 呢?内存 16GB 感觉够用了。听别人说 SSD 做 swap 挺伤的。
11:13:11 +08:00 · 3946 次点击
还有,mac的swap还会动态增减,好厉害,Linux有没有类似的功能?如果有怎么启用呢?
26 回复 &| &直到
16:37:25 +08:00
& & 11:32:56 +08:00
没有必要。
& & 11:35:45 +08:00
你想到的,开发Mac的Engineers也想到了吧。
另外SSD寿命比你的电脑寿命长,不需要担心伤不伤的玄学
我好担心这张床被我睡坏啊,所以我以后还是睡沙发吧?
& & 11:58:51 +08:00
@ 提督真真是无处不在啊。
& & 11:59:40 +08:00
另外SSD真的不用担心损坏的情况,比机械硬盘稳定多了,尤其是机械硬盘最怕的磕磕碰碰,这点SSD好太多了
& & 12:01:48 +08:00
战无不胜的方法:反正一切有关于物品保养的事情,都归类到“只注重保养而不关心使用”的那一类里面去。
& & 12:25:24 +08:00
努力挣钱就好了←_←
& & 12:27:57 +08:00
没有必要,系统会自动分配的,优先使用物理内存,16G内存绝大多数情况下打开Monitor看Swap used都是0.我也只有写python内存泄露才用到了swap.
当然你实在想关闭的话,可以用thinker tool 或者onyx,里面有关闭虚拟内存的选项.
新机器拿到是比较爱惜,等到你用yosemite久了之后,你会恨不得摔了它,什么傻哔电脑,垃圾设计,狗屎finder,还卡的要死,tmd MAS都打不开.
& & 16:18:28 +08:00
好,不关闭了。(泪奔。
& & 17:18:12 +08:00
@ +1 Yosemite差评
& & 17:46:47 +08:00
@ 我大邪教一样玄学
& & 19:23:51 +08:00
怎么讲呢……
放心往死里用就行了 这寿命绝对够你折腾的
没等出问题 性能已经不足 要换机了
& & 20:56:43 +08:00 via iPhone
有什么好担心寿命的。我现在天天高温炮gta5
& & 20:58:41 +08:00
每天100G写入可以用五年,你怕啥
& & 21:14:47 +08:00
@ GTA5...用Mac玩游戏不爆炸?。。。
& & 05:39:30 +08:00
默认是不使用就等于关闭啊,要是需要用的时候不能用还是会卡死的。
& & 06:25:20 +08:00
@ 关于GTA5, 看我的帖子, 15低配, 有时一玩就是十几个小时 (不过我写了个程序手动控制风扇, applesmc的自动调速感觉是为了静音, 倾向于保持低转速).
--------------------------------
回到主题. 16G内存不分swap在大多数情况下没什么问题, 即使分了也可以通过调整swappiness来减少换页. 但是为了能休眠, 我现在还是分了4G的swap file (类似于Windows的页面文件), 没有单独分区, 大多数情况下可以休眠成功, 不过有时占用内存过多需要关一些程序.
& & 08:00:02 +08:00 via Android
swappiness=0
卍解
& & 09:01:12 +08:00
@ 哈哈哈哈,努力挣钱才是硬道理
话说回来,买了个工具,只管用就好,不用想这么多的
& & 10:21:01 +08:00
啊哈,谢谢各位的建议了,其实Mac买了有一年了,只是我对一些有消耗的事情总是比较在意。
& & 10:55:05 +08:00 via Android
开机也挺伤的建议关机
& & 10:59:41 +08:00
想那么多。。都是工具,坏了再买,钱没了就再挣= =
& & 13:40:56 +08:00
& & 13:55:23 +08:00
别黑。==
& & 14:22:52 +08:00
& & 15:43:29 +08:00
最终还是没有人回答关于Linux的问题。。。来黑的多。。。
所以,Linux有提供类似的自动设置Swap的机制吗?不是说通过自定义脚本,而是系统自身的。
& & 16:37:25 +08:00
sudo swapoff -a
& · & 2999 人在线 & 最高记录 3541 & · &
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.0 · 41ms · UTC 07:56 · PVG 15:56 · LAX 00:56 · JFK 03:56? Do have faith in what you're doing.8G内存,还有必要单独分区swap吗? - 查看主题 & Ubuntu中文论坛
&[ 23 篇帖子 ]&
&文章标题 : 8G内存,还有必要单独分区swap吗?发表于 :
16:51帖子: 214
送出感谢: 0 次
接收感谢: 0 次
新入手笔电,8G内存,感觉够用了。还需要单独划分swap吗?另外,准备彻底抛弃windows7,只安装一个虚拟机运行windows7,好兼容“窗奴”,想问问,我安装的是64位ubuntu12.04,虚拟机要选择64位的,然后windows7也选择64位的,是这样吗?谢谢!
&文章标题 : Re: 8G内存,还有必要单独分区swap吗?发表于 :
论坛管理员
0:06帖子: 10149
系统: Ubuntu 12.04
可以考虑划分一个1-2G的交换分区,不会有任何不好的影响。虚拟机可以选择32位的。
&文章标题 : Re: 8G内存,还有必要单独分区swap吗?发表于 :
9:18帖子: 1081地址: 小僧乃吐蕃国大雪山大轮寺护国法师座下四大护法之西域妖僧是也
送出感谢: 0 次
8G内存够用的话,通常不需要swap。如果设swap,我觉得要设8G,1-2G无法睡眠。
_________________Laptop: i5-460m hm55 4g 320g hd5470 14'led 2.3kg (acer 4738g)Windows XP 7 8 all in one partition.Ubuntu 10.04 LTSMac OS X 10.6.7
&文章标题 : Re: 8G内存,还有必要单独分区swap吗?发表于 :
1:53帖子: 961
没必要,我4g内存都没设置,还把/tmp等挂载的内存里了,虚拟机可以64位也可以32位
_________________docker && kubernetes
&文章标题 : Re: 8G内存,还有必要单独分区swap吗?发表于 :
22:23帖子: 1376
还是需要swap的,经常看见有交换数据而且还不少。
_________________愿扣上你双手,至繁华浪处到沙丘。
&文章标题 : Re: 8G内存,还有必要单独分区swap吗?发表于 :
16:51帖子: 214
送出感谢: 0 次
接收感谢: 0 次
我自己本来没有准备单独分区swap的,但是安装的时候没有注意,直接选择了使用整个硬盘,本以为这样就可以只有一个/分区,结果安装结束以后发现自动在/分区后面帮我划分了一个和内存等大的swap分区。楼上大侠把/tmp挂载到内存怎么操作的?请教请教!谢谢大家。
&文章标题 : Re: 8G内存,还有必要单独分区swap吗?发表于 :
10:38帖子: 4570
系统: Arch
有必须要swap的软件,不管用不用。。。
&文章标题 : Re: 8G内存,还有必要单独分区swap吗?发表于 :
12:41帖子: 11003
灰色小狼 写道:有必须要swap的软件,不管用不用。。。所以奉劝楼主听oneleaf老大的
_________________
&文章标题 : Re: 8G内存,还有必要单独分区swap吗?发表于 :
14:20帖子: 3866
系统: Mint18
分呗,现在硬盘都那么大的,反正搁着又用不掉。
_________________
&文章标题 : Re: 8G内存,还有必要单独分区swap吗?发表于 :
22:12帖子: 5371地址: 江苏南京
系统: OSX 10.9 + Ub 1304
送出感谢: 0 次
最好还是保留一个swap,windows下也有页面文件的。去掉swap弊大于利,如果你要你的机器支持冬眠的话最好比内存稍微大一点点。我的笔记本16G内存都不关心swap是否保留的问题
_________________佛经说,人有八苦: 生、老、病、死、求不得、怨憎、爱别离、五阴盛 故我苦!圣经说,人有七罪: 饕餮、贪婪、懒惰、淫欲、傲慢、嫉妒和暴怒  故我有罪!我这篇帖子里面没有任何攻击我们伟大的中华人民共和国政府和任劳任怨的人民公仆(和本论坛高素质的版主)的文字和含义;特此声明!有些事,我们明知道是错的,也要去坚持,因为不甘心;有些人,我们明知道是爱的,也要去放弃,因为没结局;有时候,我们明知道没路了,却还在前行,因为习惯了。欢迎来我的
&文章标题 : Re: 8G内存,还有必要单独分区swap吗?发表于 :
23:47帖子: 22120地址: 美丽富饶的那啥星球
哥,虚拟机就32行了,难不成你还虚拟个8G内存给他?PS:8G不算大,我老人家随便开个破chrome就统统吃光,1K都不给你剩下
_________________明天就换大三八!——8核CPU、8G内存、8T硬盘……8卡交火,80寸大屏放8个……IPv8的光纤要8条……---------------------------------------------------------------------------------★
&文章标题 : Re: 8G内存,还有必要单独分区swap吗?发表于 :
16:51帖子: 214
送出感谢: 0 次
接收感谢: 0 次
不是我新潮,非要64位虚拟机,而是我已经安装了64位的ubuntu12.04,这个虚拟机只能装64位的虚拟机,不知道里面能不能装上32位的windows7
&文章标题 : Re: 8G内存,还有必要单独分区swap吗?发表于 :
19:31帖子: 447
系统: debian+fedora+win10
Swap分区  Swap分区,即交换区,Swap空间的作用可简单描述为:当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行Swap交换。 其实,Swap的调整对Linux服务器,特别是Web服务器的性能至关重要。通过调整Swap,有时可以越过系统性能瓶颈,节省系统升级费用。
&文章标题 : Re: 8G内存,还有必要单独分区swap吗?发表于 :
19:31帖子: 447
系统: debian+fedora+win10
charliecheng 写道:不是我新潮,非要64位虚拟机,而是我已经安装了64位的ubuntu12.04,这个虚拟机只能装64位的虚拟机,不知道里面能不能装上32位的windows764位的debian装32位的2003成功
&文章标题 : Re: 8G内存,还有必要单独分区swap吗?发表于 :
3:29帖子: 1554
l10x 写道:http://baike.baidu.com/view/418446.htmSwap分区  Swap分区,即交换区,Swap空间的作用可简单描述为:当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行Swap交换。 其实,Swap的调整对Linux服务器,特别是Web服务器的性能至关重要。通过调整Swap,有时可以越过系统性能瓶颈,节省系统升级费用。swap不是三言两语可以说清的东西,详细讨论的话完全可以写本书。有时swap本身也会成为性能的瓶颈。8G内存,一般情况下采纳2楼的建议即可。
_________________16.04--&14.04
显示帖子 : 全部帖子1天7天2周1个月3个月6个月1年&排序 作者发表时间文章标题 升序降序&
&[ 23 篇帖子 ]&
正在浏览此版面的用户:Bing [Bot], Youdao FeedFetcher 和 4 位游客
您 不能 在这个版面发表主题您 不能 在这个版面回复主题您 不能 在这个版面编辑帖子您 不能 在这个版面删除帖子您 不能 在这个版面提交附件
选择一个版面
------------------
公告/注意事项
& &新闻和通知
& &校园社团支持
& && &华东校区
& && &华南校区
& && &华北校区
& && &华中校区
& && &东北校区
& && &西北校区
& && &港澳台校区
& && &国外校区
& &软件推荐
& &非常任务
系统安装区
& &教学和常见问答
& && &课堂教学和培训
& &初学者园地 - 17.10 Artful Aardvark
& &系统安装和升级
& && &新立得和软件源
& && &Wubi安装讨论
& &启动和引导
& &网卡问题以及网络和拨号
& && &校园网拨号
& &笔记本、UMPC支持
& &手机和平板
& && &Ubuntu移动应用开发
& &常用硬件支持
& &系统架构支持
配置美化区
& &字体美化和中文支持
& && &个人配置文件存放点
& &桌面特效
& &窗口管理器
& &屏幕抓图
& &办公、图像、机械电子设计等
& && &Vim和Emacs
& &因特网相关软件
& &影音多媒体
& &Wine及其分支
& &游戏和游戏模拟器
& &虚拟机和虚拟化
& &其它类软件
& &开源模板库
服务器管理
& &服务器基础应用
& &数据库管理
& &服务器维护和硬件相关
& &Ubuntu VPS
参与Ubuntu开发
& &软件和文档翻译
& &编译或打包
& &Ubuntu错误报告
程序设计区
& &Shell脚本
& &GTK+和QT
& &软件/网站开发
& && &Python/Php/Perl
& && &C/C++/Java
& &内核及嵌入式开发
& &开源小工具
& &Ubuntu 18.04 LTS
& &Ubuntu 16.04 LTS
& &Ubuntu 14.04 LTS
& &Ubuntu 12.04 LTS
& &Ubuntu 10.04 LTS
& &老旧版本支持
衍生发行版
& &Ubuntu GNOME
& &Kubuntu
& &Xubuntu & Lubuntu
& &Ubuntu中文衍生版
& && &UbuntuKylin
& &Ubuntu国外衍生版
& && &Mint
& &Ubuntu衍生版制作
& &其它类Unix OS发行版
& && &Arch发行版
& && &Debian发行版
& && &OpenSUSE发行版
& && &Deepin
& &深度PK版
& &Ubuntu故事和感慨
& &Full Circle开源杂志
分享交流区
& &同城交流
& &线下活动专版
& &Ubuntu宣传推广
& &论坛管理
& && && &Ubuntu中文网上商店还没有帐号? 赶紧
用户版块帖子
海康威萤石R2拆机,求解锁recovery方法!!
UID:1576641
在线时间1399小时
M币4306专家3
&&发表于: 03-22
海思Hi3798方案的,看到其他盒子都有短接cpu附近哪里,这个不知有没有预留。[ 此帖被hx在 07:56重新编辑 ]
本文内容包含图片或附件,获取更多资讯,请
后查看;或者
成为会员获得更多权限
UID:904618
在线时间1672小时
M币763专家3
&发表于: 03-22
珍爱生命 远离华为所谓的“自主知识产权”
UID:564121
在线时间2400小时
M币7088专家6
&发表于: 03-22
回 默默游戏 的帖子
:珍爱生命 远离华为所谓的“自主知识产权”&( 20:54)&那什么才叫做真正的自主知识产权呢?自己研发一个非ARM的架构?
UID:1536601
在线时间1114小时
M币505专家1
&发表于: 03-22
看看那两个白色的四针接口哪个是ttl 连接电脑以后用&&hi3798m一键刷recovery
UID:904618
在线时间1672小时
M币763专家3
&发表于: 03-23
回 yogi16888 的帖子
:那什么才叫做真正的自主知识产权呢?自己研发一个非ARM的架构?&( 21:27)&我的意思是,他的系统和代码都比较封闭,想刷机很蛋疼
UID:904618
在线时间1672小时
M币763专家3
&发表于: 03-23
回 yogi16888 的帖子
:那什么才叫做真正的自主知识产权呢?自己研发一个非ARM的架构?&( 21:27)&这种封闭,往往是肥了那些从灰色渠道拿到刷机工具的奸商,这点不否认吧
UID:1576641
在线时间1399小时
M币4306专家3
&发表于: 03-23
回 yyc__ 的帖子
:看看那两个白色的四针接口哪个是ttl 连接电脑以后用  hi3798m一键刷recovery ( 21:31) 我也这样想,但是不用短接cpu附近哪里吗?
UID:1576641
在线时间1399小时
M币4306专家3
&发表于: 03-23
回 默默游戏 的帖子
:这种封闭,往往是肥了那些从灰色渠道拿到刷机工具的奸商,这点不否认吧 ( 03:26) 固件我已经搞到,也有修改工具,只是recovery要验证签名刷不进去。
UID:920627
在线时间309小时
M币515专家2
&发表于: 03-23
回 hx 的帖子
:固件我已经搞到,也有修改工具,只是recovery要验证签名刷不进去。 ( 07:56) 我觉得可以把ROM焊下来,拿编程器硬刷
UID:1576641
在线时间1399小时
M币4306专家3
&发表于: 03-23
回 弈帆投资 的帖子
:我觉得可以把ROM焊下来,拿编程器硬刷 ( 09:24) BGA的,我没那能耐。
访问内容超出本站范围,不能确定是否安全
温馨提示:所有技术区严禁灌水,“沙发”“顶”字样;禁止广告贴;以免被删除
您目前还是游客,请
&回复后跳转到最后一页
Code by , Time now is:03-29 15:56, Total 0.159135(s) query 7,
Gzip enabled&还没有帐号? 赶紧
用户版块帖子
尝试激活一个ipad2电池
UID:1576641
在线时间1399小时
M币4306专家3
年前网上买的二手拆机电池,由于ipad升级了9.35,有点卡不想用,一直放抽屉,前些天看到可以降级,就找出来查询了下Shsh,结果忘记退出duf模式,直到今天有点空,带来降级试试,结果发现电池过放了,充了两个小时还是充不进,就有了下面的场景,工作场地较乱,别介意!!
本文内容包含图片或附件,获取更多资讯,请
后查看;或者
成为会员获得更多权限
UID:1576641
在线时间1399小时
M币4306专家3
表是坏的,必须打到电流挡才能测电压,
UID:1336660
在线时间633小时
M币2706专家2
回 hx 的帖子
:表是坏的,必须打到电流挡才能测电压, ( 15:48) DCV啊,,明明是电压档。。
在线时间941小时
M币38专家-2
一般过放电池最简单的办法就是断续充电法修复,办法就是充电5秒,关掉,再充电5秒,关掉。循环十次差不多就可以了。
UID:1576641
在线时间1399小时
M币4306专家3
现在问题是3.8V了,还是不能开机
UID:34502
在线时间1213小时
M币4403专家7
想知道结果,PAD全是胶,不好拆。
UID:1219923
在线时间609小时
M币905专家1
回 hx 的帖子
:现在问题是3.8V了,还是不能开机 ( 15:59) 建议你量一下电池上的保险,估计挂了。
UID:1475808
在线时间949小时
M币836专家0
楼主,我的ipad也是这样,充不进电,我拆了用万能充冲了一晚上,还是开不开机,估计是电池保护了,淘宝换块电池吧,五十左右
UID:1576641
在线时间1399小时
M币4306专家3
:建议你量一下电池上的保险,估计挂了。&( 16:01)&现在3.9v开机了,界面显示2%,不是预想的3.7
UID:1576641
在线时间1399小时
M币4306专家3
快下班了,准备放弃,还是3.9v,感觉冲不动,发现已经开机,3.9V的时候2%.不是预想的3.7V,难怪3.7死活充不进,看来早都保护状态了!
本文内容包含图片或附件,获取更多资讯,请
后查看;或者
成为会员获得更多权限
访问内容超出本站范围,不能确定是否安全
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
您目前还是游客,请
&回复后跳转到最后一页
Code by , Time now is:03-29 15:56, Total 0.116919(s) query 7,
Gzip enabled&> linux性能分析及调优__cpu 性能瓶颈调优可调性能参数 、内存性能瓶颈可调性能参数(操作系统设置swap的目的、在写程序时、如何使自己的内存不被换出swap,常驻物理内存)、磁盘I/O可调性能参
linux性能分析及调优__cpu 性能瓶颈调优可调性能参数 、内存性能瓶颈可调性能参数(操作系统设置swap的目的、在写程序时、如何使自己的内存不被换出swap,常驻物理内存)、磁盘I/O可调性能参
第一节:cpu 性能瓶颈& 计算机中,cpu是最重要的一个子系统,负责所有计算任务;
基于摩尔定律的发展,cpu是发展最快的一个硬件,所以瓶颈很少出现在cpu上;
我们线上环境的cpu都是多核的,并且基于SMP(symmetric multiprocessing)结构的。
通过观察线上机器cpu使用率会发现,使用率很低很低,不到5%; 说明我们的资源浪费情况多么严重啊;(但为什么不能一台机器多部署几个应用呢,后边我会解释); 我们线上的cpu一个核支持超级线程,也就是一个核上可以并行运行几个线程)
机器CPU使用情况监控:
1、良好状态指标
&&&&&&&&&&&&&&&&&&& CPU利用率:User Time &= 70%,System Time &= 35%,User Time + System Time &= 70%。 &&&&&&&&&&&&&&&&&& 上下文切换:&&& 与CPU利用率相关联,如果CPU利用率状态良好,大量的上下文切换也是可以接受的。 &&&&&&&&&&&&&&&&&&&可运行队列:&&&每个处理器的可运行队列&=3个线程。
2、监控工具&& vmstat
$ 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
14 0 140 912
17 0 140 912
20 0 140 912
17 0 140 912
16 0 140 912
重要参数:
r, run queue, 可运行队列的线程数,这些线程都是可运行状态,只不过CPU暂时不可用;
&&&&&&&&&&&&&&&&&&&&&&&&&&& 一般要求小于CPU*3的数量。
&&&&&&&cat&& /proc/stat&&&&&&&& 可以看到有几个CPU。
b,被blocked的进程数,正在等待IO请求;
in,interrupts,被处理过的中断数
cs,context switch,系统上正在做上下文切换的数目
us,用户占用CPU的百分比
sys,内核和中断占用CPU的百分比
id,CPU完全空闲的百分比
上例可得:
sy高us低,以及高频度的上下文切换(cs),说明应用程序进行了大量的系统调用;
这台4核机器的r应该在12个以内,现在r在14个线程以上,此时CPU负荷很重。
一般我们认为,如果是4核机器,r高于8是,应该就是负载很高了。
可调优性能参数: 1、&通过调整进程优先级调整: nice 命令来调整进程优先级别;可调范围(-20到 19) 如: renice 5 pid 2、&通过调整cpu的亲和度来集中处理某一个中断类型:(比如网卡中断)
&&&&& 将系统发出的中断都绑定在一个cpu上,这样其他cpu继续执行自己正在执行的线程,不被中断打扰,从而较少了线程上下文切换时间,增强性能; &&&&&& 注: cpu亲和度的概念: 在多核cpu中,linux操作系统抢占式调度系统,按照cpu时间片/中断/等不断调度进程给cpu去执行的;
如果在一个时间片调度线程1在cpu1上运行,另外一个时间片调度线程1在cpu2上去运行,这样会造成线程执行速度慢,性能降低。
&&&&&&&&为什么呢?
&&&&&&& 我们知道SMP上多核都是共享L1 ,L2 CPU Cache的。并且各个核的内存空间都是不可共享的,一个线程如果多次时间片上在不同的cpu上运行,会造成cache的不断失效和写入,性能会降低;
&&&&&& 而linux的进程调度有个亲和度算法可以将尽量将进程每次都调度到同一个cpu上处理;
&&&&&& linux调度时当然也有Loadbalance算法保证进程调度的均匀负载的; &&&&&&&例如:&echo 03 & /proc/irq/19/smp-affinity (将中断类型为19的中断绑定到第三个cpu上处理)
第二节:内存性能瓶颈& 首先,linux的内存管理是聪明和智能的;
&&&&&&& linux通过(virtual memory manage)来管理内存的;&对于大多数应用,linux是不直接写到硬盘上去的,而是先写到 virtual memory manage 管理的文件系统缓存(也在内存中的)里 ,方便应用的后续的读请求;因为和磁盘的I/O操作是昂贵的;linux会根据一些算法策略适当的时候同步到硬盘的;这就是为什么我们运行linux一段时间后,发现可用内存那么少的原因,多数被cache+buffer占用咧; 所以我们提高性能的办法就是减少写到磁盘的次数,提高每次写磁盘时的效率质量;&&&&
机器内存使用情况监控:
&&&&&&& 1、良好状态指标
&&&&&&&&&& swap in (si) == 0,swap out (so) == 0 &&&&&&&&&&&应用程序可用内存/系统物理内存 &= 70%
2、监控工具&&& vmstat
$ 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 2 268 68 8 288 0 0 21 78 1
0 2 6 228 76 0 519 0 0 0 100 0
74 14 0 0 86 0
重要参数:
swpd,&&&&已使用的 SWAP 空间大小,KB 为单位;
free,&&&&& 可用的物理内存大小,KB 为单位;
buff,&&&&&&&物理内存用来缓存读写操作的buffer大小,KB 为单位;
cache,&&&物理内存用来缓存进程地址空间的 cache 大小,KB 为单位;
si,&&&&&&&&& 数据从 SWAP 读取到 RAM(swap in)的大小,KB 为单位;
so,&&&&&&&& 数据从 RAM 写到 SWAP(swap out)的大小,KB 为单位。
上例可得:
物理可用内存 free 基本没什么显著变化,swapd逐步增加,说明最小可用的内存始终保持在 256MB(物理内存大小) * 10% = 2.56MB 左右,当脏页达到10%的时候就开始大量使用swap。
这个10%来自& /proc/sys/vm/dirty_background_ratio &。
可调优性能参数:
1.、通过调节缓存的脏数据同步到硬盘的策略:(脏数据表示没有被当前的线程使用的数据) &&&&&& 例如: echo 10 & /proc/sys/vm/dirty_background_ratio&&(当脏数据占据物理内存10%时,触发pdflush同步到硬盘):
小心调节,会大幅度的影响性能; &&&&&& echo 2000 & /proc/sys/vm/dirty_expire_centisecs&&&&&&&&&& &(当脏数据在物理内存的逗留时间超过2000ms时被同步到硬盘); 2、通过调节swap参数,来优化linux虚拟内存管理:基于程序的局部性原理,linux通过虚拟内存机制来实现并发运行进程,linux发现物理内存不够用时,会根据LRU算法将一部分内存swap out到硬盘;当运行被换出的那个线程时,在swap in 到内存里; &&&&& 例如: echo 10 & /proc/sys/vm/swappiness (值为0表示尽量都用物理内存,值为100表示积极的使用swap分区;)这个参数很重要;小心调节; 一般为60;&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ##在紧急处理线上问题时,可以紧急使用一下。
&&&&&& 更多的参数:
一、操作系统设置swap的目的 &&&&&& 程序运行的一个必要条件就是足够的内存,而内存往往是系统里面比较紧张的一种资源。为了满足更多程序的要求,操作系统虚拟了一部分内存地址,并将之映射到swap上。对于程序来说,它只知道操作系统给自己分配了内存地址,但并不清楚这些内存地址到底映射到物理内存还是swap。物理内存和swap在功能上是一样的,只是因为物理存储元件的不同(内存和磁盘),性能上有很大的差别。操作系统会根据程序使用内存的特点进行换入和换出,尽可能地把物理内存留给最需要它的程序。但是这种调度是按照预先设定的某种规则的,并不能完全符合程序的需要。
&&&&&& 一些特殊的程序(比如MySQL)希望自己的数据永远寄存在物理内存里,以便提供更高的性能。于是操作系统就设置了几个api,以便为调用者提供“特殊服务”。
二、Linux提供的几个api 1、mlockall()和munlockall() &&&&&&& 这一对函数,可以让调用者的地址空间常驻物理内存,也可以在需要的时候将此特权取消。mlockall()的flag位可以是MCL_CURRENT和MCL_FUTURE的任意组合,分别代表了“保持已分配的地址空间常驻物理内存”和“保持未来分配的地址空间常驻物理内存”。对于Linux来说,这对函数是非常霸道的,只有root用户才有权限调用。
2、shmget()和shmat() &&&&&&& 这一对函数,可以向操作系统申请使用大页内存(Large Page)。大页内存的特点是预分配和永驻物理内存,因为使用了共享内存段的方式,page table有可能会比传统的小页分配方式更小。
&&&&&&&对于多进程共享内存的程序(比如ORACLE),大页内存能够节省很多page table开销;
&&&&&&&而对于MySQL来说,性能和资源开销都没有显著变化,好处就在于减少了内存地址被映射到swap上的可能。至于为什么是减少,而不是完全避免,之后再讲解。
3、O_DIRECT和posix_memalign() &&&&&&& 以上两个方法都不会减少内存的使用量,调用者的本意是获取更高的系统特权,而不是节约系统资源。
&&&&&&&O_DIRECT是一种更加理想化的方式,通过避免double buffer,节省了文件系统cache的开销,最终减少swap的使用率。O_DIRECT是Linux &IO调度相关的标志,在open函数里面调用。通过O_DIRECT标志打开的文件,读写都不会用到文件系统的cache。
&&&&&&&&传统的数据库(ORACLE、MySQL)基本都有O_DIRECT相关的开关,在提高性能的同时,也减少了内存的使用。至于posix_memalign(),是用来申请对齐的内存地址的。只有用posix_memalign()申请的内存地址,才能用来读写O_DIRECT模式下的文件描述符。
4、madvise()和fadvise() &&&&&&& 这对函数也是比较温和的,可以将调用者对数据访问模式的预期传递给Linux,以期得到更好的性能。 我们比较感兴趣的是MADV_DONTNEED和FADV_NOREUSE这两个flag。前者会建议Linux释放指定的内存区域,而后者会建议文件系统释放指定文件所占用的cache。
当mysql出现内存导致的性能瓶颈时,可以:
1、/proc/sys/vm/swappiness的内容改成0(临时),/etc/sysctl.conf上添加vm.swappiness=0(永久) &&&&&& 这个参数决定了Linux是倾向于使用swap,还是倾向于释放文件系统cache。在内存紧张的情况下,数值越低越倾向于释放文件系统cache。当然,这个参数只能减少使用swap的概率,并不能避免Linux使用swap。 2、修改MySQL的配置参数innodb_flush_method,开启O_DIRECT模式。 &&&&& 这种情况下,InnoDB的buffer pool会直接绕过文件系统cache来访问磁盘,但是redo log依旧会使用文件系统cache。值得注意的是,Redo log是覆写模式的,即使使用了文件系统的cache,也不会占用太多。 3、添加MySQL的配置参数memlock &&&&& 这个参数会强迫mysqld进程的地址空间一直被锁定在物理内存上,对于os来说是非常霸道的一个要求。必须要用root帐号来启动MySQL才能生效。
4、还有一个比较复杂的方法,指定MySQL使用大页内存(Large Page)。Linux上的大页内存是不会被换出物理内存的,和memlock有异曲同工之妙。具体的配置方法可以参考:http://harrison-fisk.blogspot.com/2009/01/enabling-innodb-large-pages-on-linux.html
第三节: 磁盘I/O可调性能参数& &&&&&&& linux的子系统VFS(virtural file system)虚拟文件系统;从高层将各种文件系统,以及底层磁盘特性隐藏,对程序员提供:read,write,delete等文件操作;这就是之所以我们可以在linux上mount多种不同格式的文件系统的,而window确不行;
当然基于:虚拟文件系统,文件系统,文件系统驱动程序,硬件特性方面,都能找到性能瓶颈; 1、选择适合应用的文件系统; 2.、调整进程I/O请求的优先级,分三种级别:1代表 2代表best- 3代表 如:ionice -c1 -p 1113(给进程1113的I/O优先级设置为最高优先级) 3、根据应用类型,适当调整page size 和 4、升级驱动程序;&
第四节 :网络可调性能参数 &&&&&&&对于我们web应用来说,网络性能调整如此重要,linux的网络支持是无与伦比的;是作为网络服务器的首先;对于web服务来说:除了应用的响应速度外,linux网络管理子系统,网卡,带宽都可能成为性能瓶颈;
&&&&&&&网络参数可以在/proc/sys/net/ipv4/&& 下面的文件中进行配置。
可以查看和设置的参数: 1、查看网卡设置是否全双工传输的: echtool eth0 2.、设置MTU(最大传输单元),在带宽G以上的时候,要考虑将MTU增大,提高传输性能;
&&&&&&&如: ifconfig eth0 mtu 9000 up
&&&&&& 如果数据包的长度大于mtu的长度时,很容易出现丢包情况。 3.、增加网络数据缓存;传输数据时linux是将包先放入缓存,填满缓存后即发送出去;读操作类似; &&&&&& sysctl -w net.ipv4.tcp_rmem=& 8388608& :设置tcp读缓存:最小缓存,初始化时,最大缓存 &&&&&& sysctl -w net.ipv4.tcp_wmem=& 8388608& :设置tcp写缓存:最小缓存,初始化时,最大缓存
&&&&&& 由于是先将数据放入缓存再发送,或收取收据,那么当内存紧张或内存不够用时,网络丢包就可能出现。 4、禁用window_scaling,并且直接设置window_(就像我们经常设置jvm的参数:xms = xmx一样 &&&&&& sysctl -w net.ipv4.tcp_window_scaling=0 5、设置TCP连接可重用性:&对于TIME_OUT状态的TCP连接可用于下一个TCP重用,这样减少了三次握手和创建时间,非常提高性能,尤其对于web server; &&&&& 如: 开启可重用tcp功能: sysctl -w net.ipv4.tcp_tw_reuse=1 sysctl -w net.ipv4.tcp_tw_recyle=1 6、禁用掉没必要的tcp/ip协议功能:比如broadcast包的接收; 7、linux对于keeplive的tcp连接有一个默认的过期时间;可以减小这个时间,让没用的连接释放掉,毕竟tcp连接数是有限的嘛; &&&& 如: sysctl -w net.ipv4.tcp_keepalive_time=1800 (设置过期时间,1800s) 8、设置最大tcp正在连接状态(还没ESTABLISHED)队列长度;避免由于太多的tcp连接过来,导致服务器挂掉;比如DoS攻击 &&&&&如:sysctl -w net.ipv4.tcp_max_syn_backlog=4096 9、 绑定tcp类型的中断到一个cpu上;(让cpu去亲和这个类型中断,避免频繁的中断,影响线程调度性能)
&&&&&&&总结: 我们在性能优化一个应用时,首要的是设定优化要达到的目标,然后寻找瓶颈,调整参数,达到优化目的;但是寻找瓶颈时可能是最累的,要从大范围,通过很多用例,很多测试报告,不断的缩小范围,最终确定瓶颈点;以上这些参数只是个认识,系统性能优化中可能用到,但并不是放之四海而皆准的; 有的参数要边测试,边调整的;
原文地址:&
第一节:cpu 性能瓶颈
计算机中,cpu是最重要的一个子系统,负责所有计算任务; 基于摩尔定律的发展,cpu是发展最快的一个硬件,所以瓶颈很少出现在cpu上; 我们线上环境的cpu都是多核的,并且
------分隔线----------------------------
相关阅读排行
相关最新文章
Coin163.com ( Coin163 ) All Rights Reserved &&}

我要回帖

更多关于 swap使用率 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信