博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于dd/bs和swap/swappiness
阅读量:7024 次
发布时间:2019-06-28

本文共 2106 字,大约阅读时间需要 7 分钟。

  hot3.png

参考资料:

dd介绍:

1.首先扩展一个虚拟内存(交换分区):

sudo dd if=/dev/zero of=/swap.disk bs=1M count=1ksudo mkswap -f swap.disksudo swapon /swap.disk

dd命令用于转换和复制文件:convert and copy a file.

它从输入流(if:Input Filestream)读取数据然后交给输出流(of:Output Filestream)重定向到其它文件,磁盘空间或内存。
其中/dec/zero是一个特殊文件:当你读它的时候,它会提供无限的空字符

(Character Stream,ASCII NULL, 0x00; not ASCII character "digit zero", "0", 0x30) 

在创建交换分区所需的磁盘文件时使用dd创建一个固定大小的“空白”文件。bs参数用于指定复制文件时的比特(Bytes)块(Block)大小

2.如何合理设置bs区块大小,才能使新建的swap得到最大化或最优化利用?

dd指令预设为512 bytes:使用小的block会明显地导致拷贝速度变慢。然而,使用大的block則可能会在遇到错误时,block其余部分都被填入zero-bytes。因此,如果你在拷贝一个有问题的装置时增加你的block大小,你可能会遗失较多的data,虽然你可以花较短的时间在尝试读取破损的磁盘。

- 但是必须考虑的几个问题是:物理内存是否充足?硬盘转速如何?磁盘使用是否频繁?磁盘空间是否足够?
比如我的笔记本,处理器性能较强,500G硬盘使用较少,长期开机但极少下载或存储电影等大文件,而且内存有4G,完全足够日常使用。

- 因此我在安装linux时并未设置swap交换分区,以后也可不必设置。我在做上面的测试时也没有带来更快的速度或更短的响应时间。

-所以我推荐整体性能较高的机子可以不设置swap或将bs值设置为10240/1M以上或1024/1K均可,因为实际使用到它的频率很小。

- 但是对于老旧电脑来说,则可以设置为512k或1M左右,可以自己先dd一个较小的文件作为swap来测试性能。

- 此外,借助dd来推送一个较大文件(如5G)来测试IO读写,以衡量硬盘读写以及网络容量性能。

3.那么如何设定swappiness值?

在ubuntu 里面,swappiness的值的大小对如何使用swap分区是有着很大的联系的。swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间,swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。两个极端,对于ubuntu的默认设置,这个值等于60,建议修改为10。具体这样做:

#查看你的系统里面的swappiness cat /proc/sys/vm/swappiness#不出意外的话,你应该看到是 60#修改swappiness值为10 sudo sysctl vm.swappiness=10 #但这只是临时修改,在你重启系统后会恢复默认的60#gksudo vim /etc/sysctl.conf #在这个文档的最后加上这样一行: #vm.swappiness=10 reboot

附:以下内容来自互联网:

linux2.6的虚拟内存性能有很多调优的方式。其中有一点很重要:swappiness。它被用于在内核释放内存时(即物理内存不够或大量使用时)控制交换分区的使用量。系统默认值为60。由于linux的inode值有读写上限,而交换分区将会占用大量IO读写(影响磁盘性能)。你可以用如下的方式调整swappiness值(必须是root权限)

sysctl -w vm.swappiness=25

如果你的发行版不支持sysctl命令或没有该程序,(你可以直接修改虚拟内存配置)

echo 25 > /proc/sys/vm/swappiness

你可以根据你的应用环境用不同的swappiness值以测试最佳的性能,貌似25是一个被证明的较为合理的数值。

最后,使用sysctl命令更改的只是当前内存中的参数,并没有在实际配置中生效,你还必须将vm.swappiness值加入/etc/sysctl.conf文件中以便在以后的启动中都会加载配置。
结合以上两个问题,就应该大致清楚如何合理的给自己的机子设置交换分区了。

续:

1.删除swap分区:

sudo swapoff /swap.disksudo rm /swap.disk

2.在系统启动时自动挂载新建立的swap分区文件:打开文件/etc/fstab并添加如下行到末尾:

#Entry for /swap/swap(你的swap文件路径)       swap        swap         defaults          0          0

转载于:https://my.oschina.net/cwalet/blog/306275

你可能感兴趣的文章
airodump-ng wlan0mon doesn't work
查看>>
iostat 实例分析
查看>>
php学习日记
查看>>
Qt新建项目
查看>>
虚拟机的克隆并更改主机名
查看>>
分享一波Android面试题
查看>>
python入门系列:文件操作
查看>>
适合练习的10个Python项目,每个项目都不到500行代码
查看>>
iOS宏定义的使用与规范
查看>>
Cisco ASA 应用NAT
查看>>
微信环境中不支持APP(APK)文件下载的解决方案---使用augpush实现跳转
查看>>
Python进阶之路 3.4.4 比较运算符
查看>>
数据库系统学习二
查看>>
extmail一个正常收发邮件log(内网测试)
查看>>
深入探索spring技术内幕(五): 剖析spring AOP工作原理
查看>>
利用内容提供者来操作联系人数据库
查看>>
UNIX网络编程书中源代码测试环境搭建 (centos中取时间问题)
查看>>
解决IP地址冲突的问题
查看>>
浅谈 iOS 版本号
查看>>
.net core入门之守护进程
查看>>