您当前的位置:首页 > 互联网教程

ubuntu 物理内存使用达100%,怎样排查

发布时间:2025-05-21 07:25:33    发布人:远客网络

ubuntu 物理内存使用达100%,怎样排查

一、ubuntu 物理内存使用达100%,怎样排查

有时候,查看资源管理器你会发现一个奇怪的现象。物理内存使用率没超过50%,就开始使用swap空间了。用swap显然没有使用物理内存快。如何修改?

在ubuntu里面,swappiness的值的大小对如何使用swap分区是有着很大的联系的。

swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间;swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。两个极端,对于 ubuntu的默认设置,这个值等于60,建议修改为10。具体这样做:

1、查看你的系统里面的swappiness,在终端输入 cat/proc/sys/vm/swappiness,不出意外结果应该是60

2、修改swappiness值为10。在终端输入 sudo gedit/etc/sysctl.conf,然后在最后一行添加 vm.swappiness=10,保存。

这样Ubuntu就能最大限度使用物理内存了!!

二、ubuntu安装u盘启动报错

ubuntu安装u盘启动报错(u盘启动盘安装ubuntu)安装Win7+Ubuntu双系统时遇到的问题由于此前只在VMWare虚拟机上安装过Linux系统,而且当时实际使用比较少,因此安装虚拟机时并不觉得艰难,没想到在安装双系统时却遇到了那么多问题,可以说是把所有的坑都踩了一遍,差点把实验室电脑上的硬盘数据都给弄丢了,好在有惊无险,经过几天的折腾,终于解决了所有问题,把坑都填上了。

之所以写这篇博客,是因为大部分文章都只有安装系统的步骤,却没有告诉我们需要做哪些准备、会遇到什么问题以及其解决方法,希望这篇文章能帮助一些想要安装双系统的同学。

安装Ubuntu时不能显示Windows中未分配空间:

将动态磁盘改为基本磁盘,因为动态盘是不能安装双系统的。可以在计算机-管理-磁盘管理中查看Windows分区是基本盘还是动态盘,关于基本盘和动态盘的更多内容可以看这个:基本盘和动态盘的区别。

由于动态盘的卷在物理内存上可能不连续,因此直接将动态盘转为基本盘时数据会被清空,需要使用分区助手或DiskGenius来进行转换,但是转换到基本盘可能会导致下面这个问题。

安装ubuntu时不能显示Windows分区,只能看到dev/sda:

退出安电脑装,进入试用版Ubuntu,输入sudo parted/dev/sda print,提示错误:分区表不能重叠。分区表重叠是分区助手在转换到基本磁盘时造成的,需要使用DiskGenius重建分区,这里有一篇重建分区的教程。按照教程一步一步操作,可以避免数据丢失,如果有条件,最好先备份硬盘里的所有数据。

这是因为MBR磁盘最多只有4个主分区,但是考虑到可能要装双系统,建议Windows中使用1个主分区+3个逻辑分区,这样可以在剩下的逻辑分区里选一个空闲的分区作为Ubuntu的主分区。

事实上只有MBR磁盘才有4个主分区的限制,GPT则没有此限制,这篇教程说明了如何查看电脑是GPT磁盘还是MBR磁盘。

在计算机-管理-磁盘管理中,如果未分配空间是绿色的,就会分成逻辑分区;如果未分配的空间是黑色的,那么新建的卷就是主分区,这种情况下为Linux系统新建的分区都会成为主分区,因此会有很大概率超过4块主分区而导致无法正常安装Linux系统。

要使新建的分区为逻辑分区,则可以在cmd下使用如下命令:

select disk 0#选择需要修改分区的磁盘

#通常大部分电脑都只有一块磁盘,因此0就是当前要分区的磁盘

create partition extended#回车后系统会把剩余的未分配空间全部划分为扩展分区

#在磁盘管理中可以看到这部分是绿色的。

图文教程请参看博客windows磁盘电脑黑色未分配区域扩展到逻辑驱动器

如果使用上述命令时提示“虚拟磁盘服务错误:分区数已经达到磁盘的限制”,则改为如下命令:

list volume#卷列表,找到和未分配空间相邻的卷,例如F卷,其编号为4,则:

extend#扩展F卷,将未分配空间全部划分到F卷

#由于F卷是逻辑分区,因此扩展F卷后,再将其压缩

执行完上述命令后,可以看到黑色的未分配空间已经和其相邻卷(例如F卷)合并了,此时右键该卷,选择压缩卷,输入未分配空间的大小,确认压缩后即可看到被压缩出来的未分配空间已经变为绿色。

至于为什么不直接先扩展卷再压缩卷,是因为我在实际操作中发现,如果直接对黑色的未分配空间做以上操作,得到的未分配空间还是黑色的。

安装完双系统后出现grub rescue:

ls#列出所有分区信息,例如有0-10共11个分区块

ls(hd0,msdosX)# X是分区的区号,将X改为从0到10的数

#找到那个可显示当前文件系统的分区,例如区块2

set root=(hd0,msdos2)/grub#区块2是有文件系统的分区

解决之后下次开机还是会出现grub rescue,因此在正常进入Linux系统后需要更新grub:

这篇文章Grub Rescue修复方法给出了详细的修复方法,并且区分了boot单独分区和未分区时的不同操作,比我参考的其他文章都更好。

之所以要卸载Ubuntu,是因为我参考了一篇如何安装Linux的博客,这篇博客提到Linux分区的常规方法为:

/boot#引导分区,略大于200M即可

/swap#交换分区,大于或等于物理内存的大小

#早期电脑内存比较小,因此推荐设置为物理内存的两倍左右

#现在电脑内存够用,设置为略大于物理内存即可

这个教程唯一的问题在于,没有说明根目录/的大小,导致我以为主分区不需要多大空间,因此只给根目录分了4G,而把剩余分区全部划分给了/home,其后果是在安装了一些编程软件后,系统便提示根目录空间不足,使得Ubuntu系统无法正常使用,也使得我不得不重新安装Ubuntu。

重新安装Ubuntu系统时,我给Ubuntu预留了80多G的可用空间(原来为50G),其中home分区36G,主分区40G,其余空间分给swap和boot分区。关于Linux分区的更多信息,请参考这篇博客:Ubuntu分区方案(菜鸟方案、常用方案和进阶方案)

注:如果不想重新安装系统,可以考虑使用lvm2来扩展根目录空间,扩容教程见Linux下对lvm逻辑卷分区大小的调整(针对xfs和ext4不同文件系统)。安装lvm大约需要8M空间,如果根目录已经完全被占满,则可能连lvm也安装不了,使用如下命令可以扩展一些内存:

sudo apt-get clean#清理所有软件的缓存

sudo apt-get autoclean#清除旧版本的软件缓存

sudo apt-get autoremove#删除系统不再使用的孤立软件

执行完后可以使用df-h命令查看磁盘使用空间大小。

Windows双系统中卸载Ubuntu的方法

下载MbrFix软件,解压后将MbrFix.exe放到C盘根目录下或者C:/Windows/System32目录下。

以管理员身份打开cmd,输入命令MbrFix/drive 0 fixmbr再确认即可。

重启时如果没有双系统的引导项而是直接进入Windows系统,则说明MBR引导已经修复,不再使用Ubuntu系统引导了,此时即可删除Ubuntu系统,删除方式很简单,在计算机-管理-磁盘管理中,选中原先Linux系统的安装分区,右击删除卷即可(Linux的安装分区是那些不能被Windows系统识别的卷)。被删除后剩余的未分配空间应该是绿色的。

详细内容可以参考这篇简书文章:WIN7+ubuntu双系统重装ubuntu。

在Ubuntu官网下载最新版Ubuntu的iso镜像文件,用于制作U盘启动盘。

常用的U盘启动盘制作软件有UltraISO、USB Installer、大白菜以及Win32DiskImager等。

使用UltraISO制作U盘启动盘无法进入启动项,提示Failed to load ldlinux.c32,原因是UltraISO软件不支持最新版的Ubuntu,USB Installer也出现同样问题。

解决方法:格式化U盘,使用Win32DiskImager制作U盘启动盘以重新安装系统。

安装系统的方法很简单,将U盘启动盘插入电脑后,重新启动时按F12或F2,进入Ubuntu安装引导界面一步一步来即可,详细步骤请参考教程:Win7下U盘安装Ubuntu16.04双系统详细图文教程。

注1:制作启动盘的过程中会对U盘进行格式化,因此需要先进行数据备份;

注2:只有在前面几种工具无法使用时再使用Win32DiskImager,因为Win32DiskImager制作好启动盘后会将启动盘进行分区,导致可用的空间十分之少,只能进行格式化。

1、安装双系统时,必须确保Windows的分区是基本盘而不是动态盘。

2、在Windows下划分出的用于安装Linux的未分配空间必须是绿色的,如果是黑色的则需要将其转换为绿色。未分配空间最好大于50G(Ubuntu官网建议不小于25G)。

3、给Linux系统分区时,必须保证根目录也有足够大的空间(大于20G),或者干脆不分区,把所有空间都挂载到根目录下。

4、遇到问题要及时解决,并记录下来,以避免下次遇到时还要再搜一遍。

三、『开发技术』Ubuntu与Windows如何查看CPU&GPU&内存占用量

在使用Ubuntu或Windows执行复杂数据运算时,监控CPU、GPU与内存占用量至关重要,避免超负荷运行导致的错误。本文提供简便方法,实时监控Ubuntu或Windows系统中的硬件资源占用。

Ubuntu系统中,通过`top`指令可以查看CPU与内存使用情况。若界面不直观,推荐使用`htop`,它能提供更清晰的占用量显示。安装`htop`指令如下:

`htop`命令将提供实时刷新的CPU占用量与内存使用信息。

Ubuntu系统同样内置了用于查看GPU的`nvidia-smi`指令,需先安装GPU驱动。此指令仅输出当前信息,无法实时更新。利用`watch`指令,每0.1秒刷新GPU信息,实现实时监控。

对于Windows系统,通过快捷键`Ctrl+ Alt+ Delete`调出任务管理器,点击“详细信息”和“性能”按钮,即可查看CPU、内存及GPU占用情况。注意区分Intel集成显卡与NVIDIA计算显卡。

本文提供了Ubuntu与Windows系统中CPU、GPU与内存占用量的简便监控方法,以便高效利用硬件资源。如有更多建议,欢迎在评论处分享。感谢使用,希望本文内容对您有所帮助。