free -m


free -mtotal        used        free      shared  buff/cache   available
Mem:         128831       15666       23617         406       89547      111448
Swap:        130986        130977       9      

total 内存总数
used 已经使用的内存数
free 空闲的内存数
shared 多个进程共享的内存总额
buffers buffer Cache和cached Page Cache 磁盘缓存的大小
-buffers/cache (已用)的内存数:used - buffers - cached
+buffers/cache(可用)的内存数:free + buffers + cached
可用的memory=free memory+buffers+cached

通常情况下buff/cache 占据内存特别大


sudo apt-get install sysinfo
sysinfo #查看系统信息
sudo apt-get install hardinfo
hardinfo #查看硬件信息

为什么 buffer/cache 会占用这么多的内存?


Cache:缓存区,是高速缓存,是位于CPU和主内存之间的容量较小但速度很快的存储器,因为CPU的速度远远高于主内存的速度,CPU从内存中读取数据需等待很长的时间,而 Cache保存着CPU刚用过的数据或循环使用的部分数据,这时从Cache中读取数据会更快,减少了CPU等待的时间,提高了系统的性能。
Cache并不是缓存文件的,而是缓存块的(块是I/O读写最小的单元);Cache一般会用在I/O请求上,如果多个进程要访问某个文件,可以把此文件读入Cache中,这样下一个进程获取CPU控制权并访问此文件直接从Cache读取,提高系统性能。

Buffer:缓冲区,用于存储速度不同步的设备或优先级不同的设备之间传输数据;通过buffer可以减少进程间通信需要等待的时间,当存储速度快的设备与存储速度慢的设备进行通信时,存储慢的数据先把数据存放到buffer,达到一定程度存储快的设备再读取buffer的数据,在此期间存储快的设备CPU可以干其他的事情。

Buffer:一般是用在写入磁盘的,例如:某个进程要求多个字段被读入,当所有要求的字段被读入之前已经读入的字段会先放到buffer中。

buffer/cache使用过高通常是程序频繁存取文件后,物理内存会很快被用光,
当程序结束后,内存不会被正常释放,而是成为cache状态.


linux可用内存足够为什么还用swap?


内核参数 swappiness 的值的大小,决定着linux何时开始使用swap。

swappiness=0 时表示尽最大可能的使用物理内存以避免换入到swap.
swappiness=100 时候表示最大限度使用swap分区,并且把内存上的数据及时的换出到swap空间里面.
此值linux的基本默认设置为60,不同发行版可能略微不同.

查看命令具体如下:

cat /proc/sys/vm/swappiness
60

意思就是说,内存在使用率到40%(100%-60%)的时候,系统就会开始出现有交换分区的使用。
内存的速度会比磁盘快很多,这样会加大系统io,同时造的成大量页的换进换出,严重影响系统的性能,所以在操作系统层面,要尽可能使用内存,对该参数进行调整。

调整值

sysctl vm.swappiness=10
vm.swappiness = 10cat /proc/sys/vm/swappiness
10

重启依旧生效,需要在/etc/sysctl.conf修改:

cat /etc/sysctl.conf
vm.swappiness = 10sysctl -p

swap清理


sync         #将内存缓冲区数据立刻同步到磁盘
swapoff -a   # 关闭所有的swap
swapon -a    #启用所有swap

注意:这样清理有个前提条件,空闲的内存必须比已经使用的swap空间大


cache清理


1.free -m cat /proc/meminfo
2.sudo -i
3.cat /proc/sys/vm/drop_caches
4.sync  #运行sync将dirty的内容写回硬盘,同步一下数据。将所有正在内存中的缓冲区写到磁盘中,其中包括已经修改的文件inode、已延迟的块I/O以及读写映射文件,从而确保文件系统的完整性
-----------------------------------------
-----------------------------------------
#通过修改proc系统的drop_caches清理free的cache
#Freeing Up the Page Cache #释放页缓存
5.echo 1 > /proc/sys/vm/drop_caches   #free pagecache
6.sync  #运行sync将dirty的内容写回硬盘,同步一下数据。将所有正在内存中的缓冲区写到磁盘中,其中包括已经修改的文件inode、已延迟的块I/O以及读写映射文件,从而确保文件系统的完整性
#Freeing Up the Dentries and Inodes  释放dentries和inodes
7.echo 2 > /proc/sys/vm/drop_caches # free dentries and inodes
8.sync
-----------------------------------------
-----------------------------------------
#Freeing Up the Page Cache, Dentries and Inodes 释放所有缓存
9.echo 3 > /proc/sys/vm/drop_caches
10.cat /proc/sys/vm/drop_caches
11. free -m

每次可以变换数字。

长命令

sudo su  # 进入root账号下
sudo su -c 'free -m && sync && echo 3 > /proc/sys/vm/drop_caches && sync && free -m'

0 – 不释放
1 – 释放页缓存
2 – 释放dentries和inodes
3 – 释放所有缓存

内存释放脚本


新建freemen.sh

cd root
mkdir toolsetting
cd toolsetting
gedit freemen.sh

添加以下内容

#!/bin/bash

used=`free -m | awk 'NR==2' | awk '{print $3}'`
free=`free -m | awk 'NR==2' | awk '{print $4}'`echo "===========================" >> /var/log/mem.log
date >> /var/log/mem.log
echo "Memory usage | [Use:${used}MB][Free:${free}MB]" >> /var/log/mem.logsync && echo 1 > /proc/sys/vm/drop_caches
sync && echo 2 > /proc/sys/vm/drop_caches
sync && echo 3 > /proc/sys/vm/drop_caches
echo "OK" >> /var/log/mem.log
echo "Not required" >> /var/log/mem.log

将脚本添加到crond任务,定时执行。

crontab -e #添加定时任务

添加下列命令,每隔2分钟执行一次

*/2 * * * * root /root/toolsetting/freemem.sh

备注:Crontab第一道第五个字段的整数取值范围及意义是:
0~59 表示分
1~23 表示小时
1~31 表示日
1~12 表示月份
0~6 表示星期(其中0表示星期日)


修改脚本的权限

chmod 777 /root/toolsetting/freemem.sh

启动定时服务

service crond stop
service crond start

查看定时任务

crontab -l

查看结果

tail -f /var/log/mem.log  
===========================
2017年 05月 10日 星期三 09:02:01 CST
Memory usage | [Use:15729MB][Free:99379MB]
OK
Not required
===========================
2017年 05月 10日 星期三 09:03:01 CST
Memory usage | [Use:15733MB][Free:111141MB]
OK
Not required
===========================
2017年 05月 10日 星期三 09:04:01 CST
Memory usage | [Use:15738MB][Free:110174MB]
OK
Not required
===========================
2017年 05月 10日 星期三 09:05:02 CST
Memory usage | [Use:15742MB][Free:111135MB]
OK
Not required
===========================
2017年 05月 10日 星期三 09:06:01 CST
Memory usage | [Use:15758MB][Free:111117MB]
OK
Not required
===========================
2017年 05月 10日 星期三 09:07:01 CST
Memory usage | [Use:15772MB][Free:110138MB]
OK
Not required

释放硬盘示例如下


在安装好这一连串软件之后,或许想要清理一下系统来释放一点硬盘上的空间,输入以下命令即可

sudo apt-get -y autoremove
sudo apt-get -y autoclean
sudo apt-get -y clean

gpu


#查看显卡性能测试

sudo apt install mesa-utils
glxgears # 每5s的帧数 

方法一

#lspci命令用于显示当前主机的所有PCI总线信息,以及所有已连接的PCI设备信息
#lspci 只是枚举使用PCI (包括PCIE )总线上的设备;
如果一个设备没有位于PCI 总线上,命令是不会列出来的
lspci  | grep -i vga  #查看显卡信息
lspci  | grep -i nvidia  #查看nvidia显卡信息
lspci |  egrep 'VGA|3D' #显示所有显卡信息
nvidia-smi  #查看gpu使用情况
nvidia-settings #设置GPU参数,比如风扇运转速度
watch -n 1 nvidia-smi #实时显示,配合watch命令, 让一秒刷新一次
nvidia-smi -L # list all available NVIDIA devices
sudo fuser -v /dev/nvidia* #查找占用GPU资源的PID
sudo kill -9 ***(PID)  # 解除显存占用

方法二

 rmmod nvidia #unload the nvidia driver 
modprobe nvidia #reloading 

给显卡降温


ubuntu16.04 Nvidia 显卡的风扇调速及startx的后果


参考主页


https://linux.cn/article-5573-3.html
http://blog.csdn.net/kongxx/article/details/51678487

buff/cache 内容释放

linux可用内存足够为什么还用swap

Crontab 实现定时执行一个shell脚本(以每隔十分钟执行一次为例)

Linux 释放cpugpu内存、显存和硬盘相关推荐

  1. 一、Linux的存储——内存、虚拟内存、硬盘等

    一.Linux的存储--内存.虚拟内存.硬盘 Linux 内存机制以及CPU.内存.硬盘的关系.物理内存以及虚拟内存的关系_low5252的博客-CSDN博客_linux 磁盘和内存 Linux 内存 ...

  2. 内存 显存,cpu,GPU,显卡

    内存 显存,cpu,GPU 1 硬件上的区别 1 内存条 2 cpu如下图: 3 显存:属于显卡的组成部分,主要负责存储GPU需要处理的各种数据: 4 GPU:在显卡上,属于显卡的芯片,又称图形处理单 ...

  3. 【NVIDIA】GeForce-GTX-1080Ti单算法服务内存显存占用

    [NVIDIA]GeForce-GTX-1080Ti单算法服务内存显存占用 1.背景 2.关于Gunicorn 服务器 3.测试内存显存占用 3.1 使用1个工作进程 3.2 使用2个工作进程 3.3 ...

  4. 大型3d游戏资源加载三步曲(硬盘 内存 显存)

    http://blog.csdn.net/fuzb/article/details/2084362 做过游戏的人都知道游戏的资源非常庞大,需要有一个好的后台预加载机制.现在一般都是再开一个I/O线程, ...

  5. 显卡内存和计算机内存,显存和内存的关系和区别

    显存和内存是什么关系?显存和内存有什么区别?接下来我们来讨论一下.通常说到显存和内存的时候,还会说一下缓存.存储,我们一起介绍一下. 1.显存 即显卡内存,也叫帧缓存,是用来存储显卡芯片处理过或者即将 ...

  6. linux怎么释放cached中内存,Linux 释放cached内存

    使用free -m 查看系统使用的内存情况: # free -m total      used      free      shared      buffers -/+ buffers/cach ...

  7. Ubuntu释放单张显卡显存

    训练时中断程序,显卡显存仍被占用. 查看显卡占用情况 watch -n 1 nvidia-smi 三张显卡,第一张在训练中,第二张占用已被释放,第三张未使用. 查看显卡占用的进程 sudo fuser ...

  8. Jetson TX2内存/显存

    一.参考资料 CUDA for Tegra 知否,NVIDIA Jetson 产品显存到底多少? 二.重要概念 1. integrated GPU (iGPU) 集成显卡 2. discrete GP ...

  9. mats在linux运行,N显卡显存测试mats367.38.1-支持GTX1080以下的显卡 Linux下运行,有点难度.zip...

    [实例简介] N显卡显存测试mats367.38.1-支持GTX1080以下的显卡 Linux下运行,有点难度,需要命令运行,懂得下载! [实例截图] [核心代码] f4787222-1147-453 ...

最新文章

  1. MATLAB寻址访问按什么优先,matlab笔记
  2. 多层科目任意组合汇总报表的性能优化 (上)
  3. 欧歌赛机器人_本页面内容已永久停止用户浏览!
  4. Java中Date及Timestamp时间相关内容【转】
  5. python如何做一个数据库_Python创建一个新的Django项目(连接到MySQL数据库),python,新建,mysql...
  6. java中Pattern和Matcher的使用
  7. C++基础知识学习笔记
  8. mysql affected rows_mysql_affected_rows函数定义与用法汇总
  9. linux中profile文件作用,解析Linux系统中bashrc和profile文件的作用区别
  10. Mybatis中tinyint(1)数据自动转化为boolean处理
  11. 《偶像爱豆出身的编程语言排行第一得主!谁还敢嘲python没实力?》Python应用与实践
  12. python读取data_Python批处理数据读取方法的细节:dataloader,Pytorch,批量,详解,DataLoader...
  13. python的魔法方法
  14. django “如何”系列4:如何编写自定义模板标签和过滤器
  15. pwnable.kr lotto之write up
  16. tcc-transation源码分析与思考
  17. Python抓取打印机硒鼓和组件剩余量的爬虫
  18. mysql免费版稳定吗_mysql免费版好用么
  19. 新构造运动名词解释_新构造运动
  20. 硬盘显示设备未就绪,要怎么恢复资料

热门文章

  1. java char 打印_Java中char[]输出不是内存地址的原因详解
  2. Android WebView重定向问题,Android WebView 重定向问题
  3. 高亮显示 html_友达10.1寸超低温高亮工业液晶屏G101STN01.C
  4. PAT_B_1025_Java(22分)
  5. java idisposable_在C#中实现IDisposable [重复]
  6. oracle怎么优化动态sql语句,oracle动态sql语句处理
  7. 『设计模式』不看就亏了的设计模式总结
  8. CodeForces-1058B B. Vasya and Cornfield
  9. springboot + redis
  10. 分析PCB技术印制电路板的可靠性设计(z)