Linux系统频繁存取文件,会发现物理内存很快会被用光当程序结束后,内存不会被正常释放,会一致作为Caching.Linux系统快的一个重要原因,增加Cache,有效缩短IO时间,很多架构设计的思想都是以空间换时间的嘛.一般是不需要手动释放内存的.有别于Windows系统的内存设计理念.
前置知识: /proc是一个虚拟文件系统,作为和Linux内核实体通信的一种方式.可以是通过修改/proc来修改Kernel做相应调整.
也就是说可以通过调整/proc/sys/vm/drop_caches来释放内存.
查看当前系统的内存使用情况和总的内存.看到buff/cache是非常大的.频繁读写时文件,命中率也将提高,必然减小IO时间.
实际上是看可用内存的,就是最后一列嘛.free小不代表内存不够用.Swap也是没有使用的.
查看 /proc/sys/vm/drop_caches
解释一下参数drop_caches的参数.
0:不释放,系统的默认设置,不释放内存.
1:释放页缓存(页面缓存,频繁进行读写时).
2:释放dentries和inodes(目录项,文件).
3:释放所有缓存.
运行 sync(将dirty的内容写入磁盘,防止数据丢失).
echo 1 > /proc/sys/vm/drop_caches
释放完之后改回来,让系统自动分配内存.
echo 0 > /proc/sys/vm/drop_caches(无效的参数)
Linux 内核3.0及以上是无法更改的,重启可以改回来的.shutdown -r 1
lsof -i:端口号
4.1 Linux不同主机之间复制文件.
本地即将要复制的文件.
远程主机复制前的根目录状态.
现在是本机复制一个testscp.txt文件到hw-cloud主机的/root目录下.
scp是基于ssh登录安全的传输,传输是加密的.不会提高系统多少负载的.针对很多小文件也基本不影响系统的正常运行的.
本地主机执行命令如下.
scp -r local_folder remote_username@remote_ip:remote_folder
scp 本地文件绝对路径(path) 远程主机用户名@IP地址:文件要存放的路径(path).
可以看到由于没有配置免密登录,需要输入远程主机的root密码的.可以看到进度条了.
查看远程主机文件复制结果.文件复制成功.
加参数-r 就可以递归的复制目录下面的文件了,也就是演示了复制目录.
下面测试一下:(准备一下本地即将要复制的测试目录
scp -r 本次要复制到远程主机的目录的绝对路径 远程用户@IP:存放复制来的目录的绝对路径.
结果查看
远程主机复制到本机目录下,一样的方式只是交换一下两者之间的位置即可.
测试一下:
首先删除本地目录的那个testscp目录,下次远程复制过来一个目录.
查看结果:(上述命令在本机下执行哟)
常用的几个参数
-q 不显示传输进度条。
-r 递归复制整个目录。
-P port 注意是大写的P, port是指定数据传输用到的端口号 。