IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> IOT开发的学习-linux#4内存 -> 正文阅读

[系统运维]IOT开发的学习-linux#4内存

Linux内存分为物理内存和虚拟内存。

物理内存是指实际的内存。

虚拟内存是指根据系统需要从硬盘中虚拟的划出一部分存储空间。是一种计算机系统的管理技术。

一般内存泄漏是指虚拟内存使用后没被释放,导致映射的实际存储空间被占用后释放不了,不能再次被使用。所以内存泄漏是看虚拟内存有没有持续增加。

内存使用情况可以用 ps aux命令查看,执行后可以看到以下结果:

==========================================

USER ?PID %CPU %MEM ???VSZ ??RSS? ? TTY ???STAT START ??TIME COMMAND

root ?????1921 ?0.4? ? ? ??0.6? ? ? ?11384 ?1036? ?? ???????Sl? ? ? ?11:10 ??0:00? ? ?process

==========================================

※VSZ就是虚拟内存,RSS就是实际内存。

?

一般产品发布前会做running测试,看看有没有内存泄漏的倾向。

running时,可以写个脚本(sh),把内存情况记录在文件中方便查看,简单例:

=========================================================================

while true;

do

path="/home/mem/memchk.txt"

touch "/home/mem/memchk.txt"

echo "USER PID %CPU %MEM ???VSZ ??RSS TTY ?????STAT START ??TIME COMMAND">>$path

????ps aux | grep -m 1 process1>> $path

????ps aux | grep -m 1 ?process2>> $path

????ps aux | grep -m 1 process3?>> $path

????# 100min once

????sleep 6000

??fi??

done

※注意存储容量,限定退出时间或超过一定容量后覆盖

=========================================================================

结果:

USER ??????PID %CPU %MEM ???VSZ ??RSS TTY ?????STAT START ??TIME COMMAND

root ?????1921 ?0.4 ?0.6 ?11384 ?1036 ? ???????Sl ??11:10 ??0:00 process1

root ?????1924 ?1.1 ?0.4 ?10244 ??652 ? ???????Sl ??11:10 ??0:00??process2

root ?????1942 ?0.9 ?1.0 ??7112 ?1684 ? ???????Sl ??11:10 ??0:00 ?process3

USER ??????PID %CPU %MEM ???VSZ ??RSS TTY ?????STAT START ??TIME COMMAND

root ?????1921 ?0.1 ?0.6 ?11384 ?1036 ? ???????Sl ??11:10 ??0:00? ?process1

root ?????1924 ?1.1 ?0.4 ?10244 ??652 ? ???????Sl ??11:10 ??0:07??process2

root ?????1942 ?0.7 ?1.0 ??7112 ?1684 ? ???????Sl ??11:10 ??0:04?process3

=========================================================================※如果数据比较多可以拷贝到excel上生成折线图来看会直观一点。

running时,虚拟内存是稳定的,有增减,但不会一直增加。

如果发现虚拟内存有持续增加的倾向,就有可能内存泄漏,可以分析有没有使用完没有释放的做法。

比如

open没做close,Malloc没做Free等。

养成好的编程习惯会减少很多内存泄漏的错误,大量减少后续开发时间。

※物理内存有时也会增加,这是因为有些路径还没有被跑到过,新跑时使用的内存会新分配,重复跑到不会增加,就没有问题。

?

?

?

?

?

?

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-09-04 01:48:04  更:2022-09-04 01:51:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 9:50:55-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码