linux 虚拟内存占用高(linux系统system内存占用过高)
一、虚拟内存占硬盘空间吗
虚拟内存会占硬盘空间那就会剩多少G就有多少G系统运行会变卡建议增加内存条不过硬盘容易不可能不足4G那样电脑本身就基本跑不动真实内存和虚拟内存的的高速缓存是不一样的长时不用的运行中软件就会放入虚拟内存(在真实内在不足的情况下)如果你QQ一直挂着不去动它就会放入虚拟内存当你要再去打开QQ的时候就会发现打开比较慢就是因为硬盘的高速缓存比内存要慢虚拟内存分的是整个硬盘的剩余空间中划分的不是在某一分区中划分的
二、Linux 内存 为什么会一直被占满
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。下面详细介绍它的使用方法。
统计信息区前五行是系统整体的统计信息:
第一行是任务队列信息,同 uptime命令的执行结果.其内容如下:
1:06:48当前时间
up 1:22系统运行时间,格式为时:分
1 user当前登录用户数
load average: 0.06, 0.60, 0.48系统负载,即任务队列的平均长度.
三个数值分别为1分钟、5分钟、15分钟前到现在的平均值.
第二、三行为进程和CPU的信息,当有多个CPU时,这些内容可能会超过两行.内容如下:
Tasks: 29 total进程总数
1 running正在运行的进程数
28 sleeping睡眠的进程数
0 stopped停止的进程数
0 zom**e僵*进程数
Cpu(s): 0.3% us用户空间占用CPU百分比
1.0% sy内核空间占用CPU百分比
0.0% ni用户进程空间内改变过优先级的进程占用CPU百分比
98.7% id空闲CPU百分比
0.0% wa等待输入输出的CPU时间百分比
0.0% hi CPU服务于硬中断所耗费的时间总额
0.0% si、0.0%st CPU服务于软中断所耗费的时间总额、Steal Time
后两行为内存信息.内容如下:
Mem: 191272k total物理内存总量
173656k used使用的物理内存总量
17616k free空闲内存总量
22052k buffers用作内核缓存的内存量
Swap: 192772k total交换区总量
0k used使用的交换区总量
192772k free空闲交换区总量
123988k cached缓冲的交换区总量.
内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,
该数值即为这些内容已存在于内存中的交换区的大小.
相应的内存再次被换出时可不必再对交换区写入.
进程信息区统计信息区域的下方显示了各个进程的详细信息.
首先来认识一下各列的含义:
序号列名含义
1 PID进程id
2 PPID父进程id
3 RUSER Real user name
4 UID进程所有者的用户id
5 USER进程所有者的用户名
6 GROUP进程所有者的组名
7 TTY启动进程的终端名.不是从终端启动的进程则显示为?
8 PR优先级
9 NI nice值.负值表示高优先级,正值表示低优先级
10 P后使用的CPU,仅在多CPU环境下有意义
11%CPU上次更新到现在的CPU时间占用百分比
12 TIME进程使用的CPU时间总计,单位秒
13 TIME+进程使用的CPU时间总计,单位1/100秒
14%MEM进程使用的物理内存百分比
15 VIRT进程使用的虚拟内存总量,单位kb,VIRT=SWAP+RES
16 SWAP进程使用的虚拟内存中,被换出的大小,单位kb.
17 RES进程使用的、未被换出的物理内存大小,单位kb,RES=CODE+DATA
18 CODE可执行代码占用的物理内存大小,单位kb
19 DATA可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
20 SHR共享内存大小,单位kb
21 nFLT页面错误次数
22 nDRT后一次写入到现在,被修改过的页面数.
23 S进程状态:
D=不可中断的睡眠状态
R=运行
S=睡眠
T=跟踪/停止
Z=僵*进程
24 COMMAND命令名/命令行
25 WCHAN若该进程在睡眠,则显示睡眠中的系统函数名
26 Flags任务标志,参考 sched.h
默认情况下仅显示比较重要的PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND几个列!
可以通过下面的快捷键来更改显示内容:
更改显示内容通过f键可以选择显示的内容(按 f键之后会显示列的列表,按 a-z即可显示或隐藏对应的列,后按回车键确定)
按o键可以改变列的显示顺序(按小写的 a-z可以将相应的列向右移动,而大写的 A-Z可以将相应的列向左移动,后按回车键确定)
按大写的F或O键,然后按 a-z可以将进程按照相应的列进行排序,而大写的R键可以将当前的排序倒转.
三、linux系统system内存占用过高
当Linux系统的"system"内存占用过高时,可能是因为系统中的某些进程或内核模块占用了过多的内存。可以使用以下步骤来诊断和解决问题:
使用命令"top"或"htop"来查看哪些进程占用了大量内存。在这些进程中查找可疑进程。
使用命令"ps aux"来查看进程的详细信息,以了解它是如何使用内存的。
使用命令"free-m"来查看内存使用情况,确定哪些类型的内存占用过高。
使用命令"vmstat"来查看虚拟内存使用情况,确定是否存在缺页或其他虚拟内存问题。
使用命令"dmesg"来查看内核消息缓冲区,确定是否存在内核崩溃或其他内核问题。
使用命令"lsof"来查看打开的文件,确定是否有进程占用了大量文件句柄
如果这些步骤未能找到原因,可能需要收集系统日志和性能数据并向管理员或Linux专家寻求帮助。
四、win10内存占用过高
解决方法:
方法一:
1、结束“占用内存高且不再使用”的进程。
2、在“任务管理器”界面中,切换到“进程”选项卡,点击“内存”属性项,让所有进程按占用内存大小进行排序,选中占用内存高且不再使用进程,点击“结束任务”按钮。
方法三:增大“虚拟内存”,将硬件充当内存来更流程的运行程序。虽然虚拟内存比物理内存在速度上要慢许多,但对于释放物理内存是有效果的。
1、右击Win10桌面左下角的“Windows”按钮,从其扩展面板中选择“系统”项进入。
2、从打开的“系统”窗口中,点击左上角的“高级系统设置”按钮。
3、并从打开的“系统属性”窗口中,切换到“高级”选项卡,点击“性能”栏目中的“设置”按钮。
4、待打开“性能选项”窗口后,切换到“高级”选项卡,点击“虚拟内存”栏目中的“设置”按钮。
5、后在打开的“虚拟内存”界面中,根据实际需要手动设置每个磁盘的虚拟内存,建议将虚拟内存设置为实际物理内存的2至4倍大小。
6、后根据实际情况,保存相关设置,重启一下计算机,让有关“虚拟内存”的相关设置生效。