日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

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

發布時間:2023/12/13 linux 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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腳本(以每隔十分鐘執行一次為例)

總結

以上是生活随笔為你收集整理的Linux 释放cpugpu内存、显存和硬盘的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。