Linux 释放cpugpu内存、显存和硬盘


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脚本(以每隔十分钟执行一次为例)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/246945.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

POS时机未到,POW强攻是实现全球货币的正确道路

POS时机未到,POW强攻是实现全球货币的正确道路 取代现今的货币体系的正确进攻方式是POW强攻,现在的货币是由力量背书的,以后的货币也是由力量背书的,只有因造币耗费的力量超过了所有其它力量的时候才能取代成功,才能消…

Ubuntu15.04 64位安装Theano(已经测试可执行)

备注:之前服务器上已经安装caffe,后安装Theano,所有有些步骤简略。 安装caffe详情见 Caffe Ubuntu 15.04 CUDA 7.5 在服务器上安装配置及卸载重新安装(已测试可执行) 安装所需的安装包见 链接: http://pan.baid…

跳槽时,不敢要高工资也会对候选人不利

我在做技术面试官的时候,在问完问题后,照例会问一句:你期望的工资是多少?对此,我只会记录下候选人的回答然后上报,没有同意权,更没有批驳权。 判断候选人能否通过面试,主要看候选人能…

ubuntu 15.04 下的 nvidia(待续)

检查自己的GPU是否支持CUDA,linux可用以下命令来查看GPU型号: lspci | grep –i nvidia 本机显示结果如下 03:00.0 3D controller: NVIDIA Corporation GK110BGL [Tesla K40c] (rev a1) 04:00.0 VGA compatible controller: NVIDIA Corporation GK110…

LSTM

具体推导公式为: https://zybuluo.com/hanbingtao/note/581764 转载于:https://www.cnblogs.com/invisible2/p/11593270.html

查看windows显卡内存详细信息

方式一: 打开运行(WindowsR),输入DXDIAG,打开DirectX诊断工具 可以看到显卡是AMD Radeon HD 7000 series,但是没有具体显卡信息,这个型号是AMD在2013年主推的ATI的入门级独显系列,其…

会话技术CookieSession

1.会话技术 从打开一个浏览器访问某个站点,到关闭这个浏览器的整个过程,成为一次会话。会 话技术就是记录这次会话中客户端态的状与数据的。 会话技术分为Cookie和Session: Cookie:数据存储在客户端本地&#xff0…

从服务器上传和下载文件方法

1. ssh 安装SSH Secure Shell Client客户端 下载链接 http://download.csdn.net/detail/jiandanjinxin/9755684 使用方法参考主页 http://www.cnblogs.com/wxjnew/archive/2013/06/05/3118808.html http://www.cnblogs.com/pingzhanga/p/5126885.html 导致此问题的原因是…

动态页面技术(JSP/EL/JSTL)

1 JSP技术1.1 jsp脚本和注释jsp脚本&#xff1a;  1) <%java代码%> ----- 内部的java代码翻译到service方法的内部  2) <%java变量或表达式> ----- 会被翻译成service方法内部out.print()  3) <%!java代码%> ---- 会被翻译成servlet的成员的内容jsp…

Deep Learning运行所需的硬件配置(转)

A Full Hardware Guide to Deep Learning 2015-03-09 by Tim Dettmers 304 Comments 转自&#xff1a;http://timdettmers.com/2015/03/09/deep-learning-hardware-guide/ Deep Learning is very computationally intensive, so you will need a fast CPU with many cores, ri…

DBUtils

概述 DBUtils是Java编程中的数据库操作实用工具&#xff0c;小巧简单实用。 DBUtils封装了对JDBC的操作&#xff0c;简化了JDBC操作&#xff0c;可以少写代码。 DBUtils三个核心功能介绍 QueryRunner中提供对sql语句操作的APIResultSetHandler接口&#xff0c;用于定义select操…

ubuntu系统中import h5py, ImportError: No module named h5py的解决方法

问题如下&#xff1a; 在python中输入 import h5py 却出现如下问题&#xff1a; Traceback (most recent call last):File "<stdin>", line 1, in <module> ImportError: No module named h5py于是&#xff0c;查询网上资料&#xff0c;给出如下解决…

在VNC远程桌面环境Xfce4中Tab键失效的解决方法

配置vnc远程桌面环境xfce4见下文 windows vnc 远程登录 ubuntu Linux 系统 在成功登陆xfce4远程桌面环境之后发现在终端中Tab键不能自动补齐。问题的原因是由于Tab键的功能被窗口快捷键占用&#xff0c;从而Tab键不起作用。 解决方法1如下&#xff1a; <span style&quo…

windows7 下vmware workstation 12安装Ubuntu16.04虚拟机及安装和共享文件夹

关于安装虚拟机&#xff0c;具体细节可参考下文&#xff08;已测试可执行&#xff09; vmware workstation 12 安装 ubuntu kylin 16.04虚拟机 下面就给出在虚拟机Ubuntu16.04下安装VMware Tools&#xff0c;是为了实现目标主机和虚拟机之间的通讯。 1.打开虚拟机之后&#…

图灵测试是不是已经Out了

图灵测试是图灵于1950年提出的一个关于判断机器是否能够思考的著名试验&#xff0c;测试某机器是否能表现出与人等价或无法区分的智能。 机器能否具备人类思考能力是图灵测试的核心关键。因此&#xff0c;若一台机器仅仅是通过了所谓的某种规则的“图灵测试”&#xff0c;这不…

ubuntu 15.04 /var/log/下各个日志文件及修复无message文件和debug文件

本文简单介绍ubuntu/var/log/下各个日志文件&#xff0c;方便出现错误的时候查询相应的log /var/log/alternatives.log-更新替代信息都记录在这个文件中/var/log/apport.log -应用程序崩溃记录/var/log/apt/ -用apt-get安装卸载软件的信息/var/log/auth.log -登录认证log/v…

ubuntu 15.04 系统中如何启用、禁用客人会话

方法1&#xff1a; 禁止启用客人会话 sudo gedit /etc/lightdm/lightdm.conf输入如下 [SeatDefaults] greeter-sessionunity-greeter user-sessionubuntu allow-guestfalse 然后关机重启即可生效。 启用客人会话 去掉 allow-guestfalse 即可。 方法2&#xff1a; 禁止…

前端行性能优化

PS&#xff1a;结合了精英的思想和自己的一些小小的总结~ 影响用户访问的最大部分是前端的页面。网站的划分一般为二&#xff1a;前端和后台。我们可以理解成后台是用来实现网站的功能的&#xff0c;比如&#xff1a;实现用户注册&#xff0c;用户能够为文章发表评论等等。而前…

ps怎么扣圆

在 Photoshop 中扣圆&#xff08;即将图像中的对象或人物从背景中抠出并形成一个圆形选择&#xff09;的步骤如下&#xff1a; 打开图像&#xff1a; 在 Photoshop 中打开你想要编辑的图像。 选择椭圆选框工具&#xff1a; 在工具栏中找到椭圆选框工具&#xff08;Elliptical …

Linux 下修改(NTFS或fuseblk)磁盘(卷标)显示名称

因服务器挂在新的硬盘&#xff0c;显示的是硬盘名称为中文&#xff0c;有些程序调用不支持中文&#xff0c;故需要修改挂在硬盘的名称。 查看当前所有分区 sudo fdisk -l 查看所有分区的磁盘格式 df -T 先卸载要修改名称的分区 sudo umount /dev/sda2 修改名称 sudo nt…