• 欢迎访问奇跡の海网站,本站不上传任何资源,所有资源均来自于网络,欢迎加入奇跡の海~!奇跡の海-WordPress QQ群
  • 本站下载资源为网络上收集整理而来,并且以计算机技术研究交流为目的,版权归原作者所有,仅供大家参考,学习,不存在任何商业目的与商业用途.
  • 本站系统镜像均来自于官方原版,ed2k可视为P2P下载链接。所有操作系统默认均为试用版,如有正版密钥可以有效激活,本站不提供任何激活和相关服务。

Linux内存子系统命令及常用命令

服务器 奇跡の海 2年前 (2017-01-31) 470次浏览 已收录 0个评论 扫描二维码

内存文件系统:Hugetlbfs

能够实现使用多种不同的页面大小。
用命令cat /proc/meminfo | grep -i Huge查看是否启用大叶面
[root@hxk1 ~]# cat /proc/meminfo | grep -i Huge
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
HugePages_Total为0表示没有启动,HugePages_Free:表示多少空闲大页面,HugePages_Rsvd:已经被分配但是还没用,Hugepagesize:大页面的大小。
启动Hugetlbfs文件系统:编辑/etc/sysctl.conf
添加 vm.nr_hugepages=n即可(n表示数量)。
然后sysctl -p即可生效。
比如我这里设置为 vm.nr_hugepages=20
[root@hxk1 ~]# cat /proc/meminfo | grep -i Huge
HugePages_Total:      20
HugePages_Free:       20
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
已成功启动。
我们可以把大页面当做一个文件系统来使用。
首先找一个挂载目录 mkdir /huge
mount -t hugetlbfs none /huge
这个是不可以自己来使用,得应用于某个应用程序来使用。
strace命令:
后面加命令可以追踪该命令的系统调用
如果加上-c则是追踪系统调用的结果。
——————————————————————————————————————-
strace:
strace COMMAND: 查看命令的syscall
strace -p PID: 查看已经启动进程的syscall
-c: 只输出其概括信息;
-o FILE: 将追踪结果保存至文件中,以供后续分析使用;
——————————————————————————————————————-
如下图:
Linux内存子系统及常用命令
物理内存的过量使用
物理内存的过量使用是以swap为前提的:
可以超出物理内存一部分:
参数vm.overcommit_memory
有三个值 
0表示启发式过量,自己决定要不要过量,什么时候过量使用。
1表示总是过量(在数据库尽量不要使用swap,太慢了)
2表示所有的物理内存加上一部分swap
vm.overcommit_ratio可以定义超出内存百分之多少。只有vm.overcommit_memory设定为2才有意义。
slabtop:
可以动态显示slab信息
通过cat /proc/slabinfo
tunables  
tumables后面表示可调参数 limit:表示可以被每个cpu缓存的最大对象数目。
batchcount:表示一次性传送到cpu缓存中对象的个数。
sharedfactor:在SMP(对称cpu架构中)共享多少个缓存的。
调整方法:echo ‘调整对象’  三个值空格空开 > /proc/slabinfo即可。
降低微型内存对象的系统开销
增大slab缓存。
调整网络IO的ARP缓存:
默认情况下ARP缓存都在/proc/net/arp文件当中,软限制为512个条目,硬限制为1024个条目。软限制为可以超过512,但是不能超过硬限制的1024,超过的部分有时间限制。
 ip neighbor list命令显示所记录的所有缓存条目。
ip neighbor flush dev ethx 清楚某个设备所记录的缓存条目 
对arp缓存做设置
参数: net.ipv4.neigh.default.gc_thresh1:表示当缓存器内的值少于设定值的时候,垃圾回收器不管里面条目是否过期都不进行处理。默认数值是128。
net.ipv4.neigh.default.gc_thresh2:软限制默认512
net.ipv4.neigh.default.gc_thresh3:硬限制默认1024
net.ipv4.neigh.default.gc_interval:一旦超过默认的128或者自己设定的数值。不管是否到达软限制,则进行清理。如果超出软限制,还需要清理超出软限制的达到时间规定的条目。设置的数值表示每隔几秒清理一次。
页面缓存:
主要目的是加速读操作
page cache可用缓存目录读取,普通文件的读写操作等
调整page cache参数
vfs_cache_pressure:
0:不回收dentries和inodes;
1-99: 倾向于不回收;
100: 倾向性与page cache和swap cache相同;
100+:倾向于回收;
page-cluster=3:表示一次可以交换八个页面,默认就是3.
zone_reclaim_mode:1表示内存区域回收功能打开,2表示回收写操作产生的脏页,4表示回收swap页面。
匿名页(anonymous page)
程序数据比如数组,堆中数据,匿名的内存区域,脏内存区域,进程间通信共享的页面。
匿名页是不能被交换出去的。
匿名页的大小=实际内存-共享内存

版权声明:本站所有文章和资源使用CC BY-NC-SA 4.0协议授权发布 , 转载应当以相同方式注明文章来自“SeaOMC.COM->Linux内存子系统命令及常用命令!在下边可以分享本文哦!
喜欢 (0)
[]
分享 (0)
奇跡の海
关于作者:
一个WordPress菜鸟!
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址