swap相当windows下的虚拟内存,其实就是把内存很少使用的部分通过一定的算法交换到硬盘上去,从一定程度上可以缓存系统的压力,但是效率会非常低,建议尽量买大内存。
存储设备的速度:
寄存器>缓存>内存>硬盘(swap)
total:表示物理内存总量
shared:shared 主要用于在UNIX 环境下不同进程之间共享数据,是进程间通信的一种方法,一般的应用程序不会申请使用共享内存
当前已经废弃不用,总是0
buffers:系统分配但未被使用的buffers 数量
缓冲区,输入流速度过大,接收流接收量小,先缓存,然后再慢慢接收
cached:系统分配但未被使用的cache 数量
used:实际使用的buffers 与cache 总量,也是实际使用的内存总量。
free:未被使用的buffers 与cache 和未被分配的内存之和,这就是系统当前实际可用内存。
关系:total = used + free
第2行:
-/+ buffers/cache的意思相当于:
-buffers/cache 68380 (等于第1行的 used - buffers - cached)
+buffers/cache 的内存数: 1868764 (等于第1行的 free + buffers + cached)
可见-buffers/cache反映的是被程序实实在在吃掉的内存,而+buffers/cache反映的是可以挪用的内存总数。
cache 和 buffer的区别:
Cache:高速缓存,是位于CPU与主内存间的一种容量较小但速度很高的存储器。
由于CPU的速度远高于主内存,CPU直接从内存中存取数据要等待一定时间周期,Cache中保存着CPU刚用过或循环使用的一部分数据,当CPU再次使用该部分数据时可从Cache中直接调用,这样就减少了CPU的等待时间,提高了系统的效率。Cache又分为一级Cache(L1 Cache)和二级Cache(L2 Cache),L1 Cache集成在CPU内部,L2 Cache早期一般是焊在主板上,现在也都集成在CPU内部,常见的容量有256KB或512KB L2 Cache。
Buffer:缓冲区,一个用于存储速度不同步的设备或优先级不同的设备之间传输数据的区域。
通过缓冲区,可以使进程之间的相互等待变少,从而使从速度慢的设备读入数据时,速度快的设备的操作进程不发生间断。
Free中的buffer和cache:(它们都是占用内存):
buffer : 作为buffer cache的内存,是块设备的读写缓冲区
cache: 作为page cache的内存, 文件系统的cache
如果 cache 的值很大,说明cache住的文件数很多。如果频繁访问到的文件都能被cache住,那么磁盘的读IO 必会非常小。
1.创建一个分区,将分区的类型修改为交换分区 82
2.格式化为交换分区
3.启用交换分区
4.卸载指定的交换分区
5.挂载/etc/fstab中指定的所有交换设备
[root@localhost ~]# swapon -a
dd
dd命令
功能:转化或者复制一个文件(设备)
语法:
dd [OPERAND]...
常用的选项
if=数据来源
of=数据存储目标
bs=1 #复制的单位 默认是bytes 可以使用M ,G
count=2 #复制的数量
seek=BLOCKS #创建假的镜像,跳过的空间大小
skip BLOCKS obs-sized blocks at start of output
例子:
1.复制inittab文件
[root@localhost ~]# dd if=/etc/inittab of=/tmp/inittab
2.制作光盘镜像,比如win7的光盘
两种方法:
cat /dev/cdrom > /mnt/win7.iso
dd if=/dev/cdrom of=/mnt/win7.iso
3.备份MBR
4.制作一个虚拟镜像来来作为交换分区,256M的文件
[root@localhost ~]# ll -h /var/swapfile
-rw-r--r-- 1 root root 256M Feb 13 21:23 /var/swapfile
格式化为交换分区
启动交换分区
关闭交换分区
[root@localhost ~]# swapoff /var/swapfile
5.dd可以作为磁盘读写性能的测试
6.创建一个1M的镜像,看起来显示为1G,跳过1023M
7.挂载回环设备
mount命令,可以挂载iso镜像
-o loop #挂载回环设备
上传下一个iso镜像上去 Beini_1.2.2_集成600W密码.iso
[root@localhost ~]# mount -o loop /root/Beini_1.2.2_集成600W密码.iso /media/
[root@localhost ~]# ls /media/
boot tce ??.txt
[root@localhost ~]# umount /media/
/etc/fstab详解:
手动挂载的设备重启后就无法重新挂载,内核只会挂载写在配置文件/etc/fstab中的设备。
第一个字段:要挂载的设备
第二个字段:挂载点
第三个字段:文件系统类型
第四个字段:挂载选项 默认为defaults
第五个字段:转储频率(和备份数据相关)
0:不做备份
1:每隔1天做一次完全备份
2:每隔2天做一次完全备份
第六个字段:文件系统检测顺序(只有根为1,首先检查,0表示不检查)
mount -a #就是挂载这个文件fstab下指定的分区
只要挂载了一个设备,就写入文件/etc/mtab 挂载使用-n静默挂载
1.自动挂载分区/dev/sdc7到位置/mnt/test4,并启用acl功能
mount -a #直接这样对swap不生效,swapon –a #可以生效
注意:mout –a只会挂载没有挂载的设备,已经挂载的设备需要单独使用-o remount参数来重新挂载
练习:
1、创建一个2G的分区,文件系统为ext4,卷标为MYDATA,块大小为1024,预留管理空间为磁盘分区的3%,要求开
机后可以自动挂载至/data目录,并且自动挂载的设备要使用卷标进行引用;
1)[root@localhost ~]# mke2fs -t ext4 -b 1024 -m 3 -L MYDATA /dev/sdc7
2)/etc/fstab文件中添加一行
LABEL=MYDATA /data ext4 defaults 0 0
3)[root@localhost ~]# mount –a
2、创建一个本地回环文件/var/swaptemp/swapfile来用于swap,要求大小为128MB,卷标为SWAP-FILE,且开机自动启用此交换设备;
1)[root@localhost ~]# dd if=/dev/zero of=/var/swaptemp/swapfile bs=1M count=128
2)格式化[root@localhost ~]# mkswap -L SWAP-FILE /var/swaptemp/swapfile
3) 添加到fstab文件一行内容
18 /var/swaptemp/swapfile swap swap defaults 0 0
注意,我使用卷标的方式挂载,则读取不到,因此使用文件路径
4) [root@localhost ~]# swapon –a
4)启用
3、上述第一问,如何让其自动挂载的同时启用ACL功能;
/etc/fstab
LABEL=‘MYDATA‘ /data ext4 defaults,acl 0 0
原文:http://mygbd.blog.51cto.com/8135357/1742341