例如:
[root@test114 home]# hdparm -Tt --direct /dev/sda
/dev/sda:
Timing O_DIRECT cached reads: 484 MB in 2.00 seconds = 241.83 MB/sec
Timing O_DIRECT disk reads: 390 MB in 3.01 seconds = 129.62 MB/sec
buffer:
缓冲区,一个用于存储速度不同步的设备或优先级不同的设备之间传输数据
的区域。通过缓冲区,可以使进程之间的相互等待变少,从而使从速度慢的设备读入数据
时,速度快的设备的 *** 作进程不发生间断。
cache:
当你读写文件的时候,Linux内核为了提高读写性能与速度,会将文件在内存中进行缓存,
这部分内存就是Cache Memory(缓存内存)。即使你的程序运行结束后,Cache Memory也不会
自动释放。这就会导致你在Linux系统中程序频繁读写文件后,你会发现可用物理内存会很少。
其实这缓存内存(Cache Memory)在你需要使用内存的时候会自动释放,所以你不必担心没有
内存可用。如果你希望手动去释放Cache Memory也是有办法的
一个为根分区,一个为交换分区。
1,/,根分区,一般所有文件都放在根目录下。
2,swap,虚拟内存,交换分区,一般大小为机器内存的1-2倍。
起码有如上两个分区才可以安装linux系统。建议再增加一个/boot分区,200M左右即可。
作用:
Swap分区在系统的物理内存不够用的时候,把物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么 *** 作的程序,这些被释放的空间被临时保存到Swap分区中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中。
Swap分区,即交换区,系统在物理内存不够时,与Swap进行交换。其实,Swap的调整对Linux服务器,特别是Web服务器的性能至关重要。通过调整Swap,有时可以越过系统性能瓶颈,节省系统升级费用。
根分区在Linux *** 作系统中,除/boot目录外的其它所有目录都对应于该分区.因此,用户可通过访问除/boot目录外的其它所有目录来访问该分区。
扩展资料:
linux其他分区作用:
/home分区,是用户的home目录所在地
/var/log分区,是系统日志记录分区
/tmp分区,用来存放临时文件。
/bin分区,存放标准系统实用程序。
/dev分区,存放设备文件。
/opt分区,存放可选的安装的软件。
/sbin分区,存放标准系统管理文件。
/usr分区,是redhatlinux系统存放软件的地方
/boot分区,它包含了 *** 作系统的内核和在启动系统过程中所要用到的文件
参考资料来源:百度百科-Swap分区
参考资料来源:百度百科-收藏linux磁盘分区
linux删除文件后没有释放空间\x0d\x0a \x0d\x0a今天发现一台服务器的home空间满了,于是要清空没用的文件,当我删除文件后,发现可用空间没有变化\x0d\x0a \x0d\x0aos:centos4.7\x0d\x0a\x0d\x0a现象:\x0d\x0a \x0d\x0a发现当前磁盘空间使用情况:\x0d\x0a \x0d\x0a[root@ticketb ~]# df -h\x0d\x0aFilesystemSize Used Avail Use% Mounted on\x0d\x0a/dev/sda1 981M 203M 729M 22% /\x0d\x0anone 16G 0 16G 0% /dev/shm\x0d\x0a/dev/sda9 2.9G 37M 2.7G 2% /tmp\x0d\x0a/dev/sda7 4.9G 1.9G 2.7G 42% /usr\x0d\x0a/dev/sda8 2.9G 145M 2.6G 6% /var\x0d\x0a/dev/mapper/vghome-lvhome\x0d\x0a 20G 19G 11M 100% /home\x0d\x0a/dev/mapper/vgoradata-lvoradata\x0d\x0a 144G 48G 90G 35% /u01/oradata\x0d\x0a/dev/mapper/vgbackup-lvbackup\x0d\x0a 193G 7.8G 175G 5% /u01/backup\x0d\x0a\x0d\x0a通过以下的命令找到没用的文件,然后删除\x0d\x0a\x0d\x0a[root@ticketb ~]# find /home/oracle/admin/dbticb/udump/ -name "dbticb_*.trc" -mtime +50 | xargs rm -rf\x0d\x0a \x0d\x0a然后在查看磁盘空间使用情况,发现没有/home空间没有变化\x0d\x0a \x0d\x0a[root@ticketb ~]# df -h\x0d\x0aFilesystemSize Used Avail Use% Mounted on\x0d\x0a/dev/sda1 981M 203M 729M 22% /\x0d\x0anone 16G 0 16G 0% /dev/shm\x0d\x0a/dev/sda9 2.9G 37M 2.7G 2% /tmp\x0d\x0a/dev/sda7 4.9G 1.9G 2.7G 42% /usr\x0d\x0a/dev/sda8 2.9G 145M 2.6G 6% /var\x0d\x0a/dev/mapper/vghome-lvhome\x0d\x0a 20G 19G 11M 100% /home\x0d\x0a/dev/mapper/vgoradata-lvoradata\x0d\x0a 144G 48G 90G 35% /u01/oradata\x0d\x0a/dev/mapper/vgbackup-lvbackup\x0d\x0a 193G 7.8G 175G 5% /u01/backup\x0d\x0a \x0d\x0a这个郁闷啊,明明删除文件了,怎么空间没有被释放啊,rm命令应该是直接删除啊,在查看下/home下还有什么占用空间\x0d\x0a \x0d\x0a[root@ticketb ~]# du -h --max-depth=1 /home\x0d\x0a16K /home/lost+found\x0d\x0a2.6G/home/oracle\x0d\x0a2.6G/home\x0d\x0a \x0d\x0a可这里显示空间已经释放了啊,于是google下,\x0d\x0a \x0d\x0a未释放磁盘空间原因:\x0d\x0a \x0d\x0a在Linux或者Unix系统中,通过rm或者文件管理器删除文件将会从文件系统的文件夹结构上解除链接(unlink).然而假设文件是被\x0d\x0a打开的(有一个进程正在使用),那么进程将仍然能够读取该文件,磁盘空间也一直被占用。而我删除的是oracle的告警log文件\x0d\x0a删除的时候文件应该正在被使用\x0d\x0a \x0d\x0a解决方法\x0d\x0a \x0d\x0a首先获得一个已经被删除可是仍然被应用程序占用的文件列表,例如以下所看到的:\x0d\x0a\x0d\x0a[root@ticketb ~]# lsof |grep deleted\x0d\x0aoracle12639 oracle5w REG 253,0 648 215907 /home/oracle/admin/dbticb/udump/dbticb_ora_12637.trc (deleted)\x0d\x0aoracle12639 oracle6w REG 253,0 16749822091 215748 /home/oracle/admin/dbticb/bdump/alert_dbticb.log (deleted)\x0d\x0aoracle12639 oracle7u REG 253,0 0 36282 /home/oracle/oracle/product/10.2.0/db_1/dbs/lkinstdbticb (deleted)\x0d\x0aoracle12639 oracle8w REG 253,0 16749822091 215748 /home/oracle/admin/dbticb/bdump/alert_dbticb.log (deleted)\x0d\x0aoracle12641 oracle5w REG 253,0 648 215907 /home/oracle/admin/dbticb/udump/dbticb_ora_12637.trc (deleted)\x0d\x0aoracle12641 oracle6w REG 253,0 16749822091 215748 /home/oracle/admin/dbticb/bdump/alert_dbticb.log (deleted)\x0d\x0a。\x0d\x0a。\x0d\x0a。\x0d\x0aoracle23492 oracle6w REG 253,0 16749822091 215748 /home/oracle/admin/dbticb/bdump/alert_dbticb.log (deleted)\x0d\x0aoracle23492 oracle7u REG 253,0 0 36282 /home/oracle/oracle/product/10.2.0/db_1/dbs/lkinstdbticb (deleted)\x0d\x0aoracle23492 oracle8w REG 253,0 16749822091 215748 /home/oracle/admin/dbticb/bdump/alert_dbticb.log (deleted)\x0d\x0aoracle23494 oracle 10u REG 253,0 0 36307 /home/oracle/oracle/product/10.2.0/db_1/dbs/lkinstrmandb (deleted)\x0d\x0a\x0d\x0a从输出结果能够看到/home/oracle/admin/dbticb/bdump/alert_dbticb.log还被使用,未被释放空间\x0d\x0a \x0d\x0a怎样让进程释放呢?\x0d\x0a \x0d\x0a一种方法是kill掉相应的进程,或者停掉使用这个文件的应用,让os自己主动回收磁盘空间\x0d\x0a我这个环境有非常多进程在使用的这个文件,停掉进程有点麻烦,再有就是风险非常大\x0d\x0a \x0d\x0a当linux打开一个文件的时候,Linux内核会为每个进程在/proc/ 『/proc/nnnn/fd/文件夹(nnnn为pid)』建立一个以其pid\x0d\x0a为名的文件夹用来保存进程的相关信息,而其子文件夹fd保存的是该进程打开的全部文件的fd(fd:file descriptor)。\x0d\x0akill进程是通过截断proc文件系统中的文件能够强制要求系统回收分配给正在使用的的文件。\x0d\x0a这是一项高级技术,仅到管理员确定不会对执行中的进程造成影响时使用。应用程序对这样的方\x0d\x0a式支持的并不好,当一个正在使用的文件被截断可能会引发不可预知的问题\x0d\x0a \x0d\x0a所以我还是采用停应用来解决\x0d\x0a \x0d\x0arestart oracle数据库,发现/home/oracle/admin/dbticb/bdump/alert_dbticb.log相应的空间被释放\x0d\x0a \x0d\x0a在查看磁盘空间的使用情况,发现空间已经回收了\x0d\x0a\x0d\x0a[root@ticketb ~]# df -h\x0d\x0aFilesystemSize Used Avail Use% Mounted on\x0d\x0a/dev/sda1 981M 203M 729M 22% /\x0d\x0anone 16G 0 16G 0% /dev/shm\x0d\x0a/dev/sda9 2.9G 37M 2.7G 2% /tmp\x0d\x0a/dev/sda7 4.9G 1.9G 2.7G 42% /usr\x0d\x0a/dev/sda8 2.9G 145M 2.6G 6% /var\x0d\x0a/dev/mapper/vghome-lvhome\x0d\x0a 20G 2.6G 16G 15% /home\x0d\x0a/dev/mapper/vgoradata-lvoradata\x0d\x0a 144G 48G 90G 35% /u01/oradata\x0d\x0a/dev/mapper/vgbackup-lvbackup\x0d\x0a 193G 7.8G 175G 5% /u01/backup\x0d\x0a\x0d\x0aok,问题解决,然后做下收尾工作就可以\x0d\x0a \x0d\x0a-------------------------------------------------------------------------------------------------\x0d\x0a \x0d\x0a学习下lsof命令\x0d\x0a \x0d\x0alsof全名list opened files,也就是列举系统中已经被打开的文件。我们都知道,linux环境中,不论什么事物都是文件,\x0d\x0a设备是文件,文件夹是文件,甚至sockets也是文件。所以,用好lsof命令,对日常的linux管理非常有帮助。\x0d\x0a \x0d\x0alsof是linux最常常使用的命令之中的一个,通常的输出格式为:\x0d\x0a \x0d\x0a引用\x0d\x0aCOMMAND PID USER FD TYPE DEVICE SIZE NODE NAME欢迎分享,转载请注明来源:内存溢出
评论列表(0条)