圆通快递 發表於 2025-12-29 00:00:00

Ubuntu/Linux/Gnome 打开文件慢/卡死怎么办?如何解决?

<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li>原因分析</li><li>一、Tracker3:GNOME 的文件索引服务</li><li>二、GNOME 文件管理器的缩略图机制</li><li>解决方案:<ul class="second_class_ul"><li>1. Tracker3</li><li>2. 禁用部分缩略图,只对 &le;100MB 的文件生成缩略图</li></ul></li><li>Ubuntu系统用起来卡顿的问题解决办法<ul class="second_class_ul"><li>可能原因1 物理内存swappiness设置值太大</li><li>可能原因2&nbsp;磁盘占满</li><li>可能原因3 退出光盘</li></ul></li></ul></div><p>不知道各位在使用ubuntu 桌面版时有没有遇到过这个问题,打开本地文件时速度很慢,影响心情。如果你用chrome,某个页面需要上传本地文件时,会发现这个速度更慢,有时候甚至会直接卡死。</p>
<p><img alt="解决Ubuntu/Linux/Gnome 打开文件慢,使用chrome打开文件更慢/卡死问题_图2" src="https://zhuji.jb51.net/uploads/allimg/20251229/2-2512291FZ9293.png" /></p>
<p>今天终于忍无可忍,要把这个问题分析下,并且解决掉。下面首先分析原因,不想看原因分析可以直接跳到后面解决方案部分。</p>
<p class="maodian"></p><h2>原因分析</h2>
<p>我本地设备如下,可以看出并非是硬件性能问题:</p>
<p>系统:Ubuntu 24.04</p>
<p>桌面环境:GNOME</p>
<p>硬件:Intel i7-14700K + DDR5 32GB + NVMe SSD</p>
<p>现象:</p>
<ul><li>打开本地文件夹明显卡顿</li><li>双击文件反应慢</li><li>浏览器(Chrome / Firefox)上传文件、选择本地文件时更慢</li></ul>
<p>那为什么&nbsp;Ubuntu / GNOME 打开文件还会如此之慢呢?实际上慢的不是磁盘,也不是 CPU,而是 GNOME 默认启用的一套&ldquo;文件索引 + 缩略图&rdquo;机制。核心问题集中在两个东西上:</p>
<p class="maodian"></p><h2>一、Tracker3:GNOME 的文件索引服务</h2>
<p>Ubuntu 24.04 默认启用了 Tracker 3,它的定位是:一个&ldquo;桌面级全文搜索引擎&rdquo;。Tracker 主要完成以下的功能:监听家目录下的文件变化,扫描文件系统,解析文件内容和元数据(PDF、图片、视频、Office 文档等),最后把结果写入数据库,供 GNOME 全局搜索、Nautilus 使用。问题就在于Tracker 并不只是&ldquo;后台慢慢索引&rdquo;,而是会在你打开文件夹、选择文件时同步参与。于是就出现了打开目录时突然卡几秒、文件一多就明显掉帧、CPU / IO 明明没满,却&ldquo;假死&rdquo;的问题。这是设计层面的同步阻塞问题,性能再强也救不了。</p>
<p class="maodian"></p><h2>二、GNOME 文件管理器的缩略图机制</h2>
<p>Nautilus(文件管理器)默认行为是:打开目录时生成图片 / 视频 / PDF 缩略图,读取 EXIF、视频信息。对大文件也照样处理。当目录中存在大图片、视频文件、PDF、素材目录、下载目录时就会出现&ldquo;打开文件夹 = 同时解码一堆媒体文件&rdquo;的现象。这在 GNOME 中很多操作还是同步完成的,自然就慢。</p>
<p>至于为什么浏览器&ldquo;打开本地文件&rdquo;慢到地老天荒,经常丧心病狂的长达二三十秒,原因并不在浏览器,而是 调用链更长:浏览器&rarr; xdg-desktop-portal &rarr; GNOME 文件选择器&nbsp;&rarr; Nautilus&nbsp;&nbsp;&rarr; Tracker &rarr; 文件系统。这个过程中每一层都要做权限校验、进程通信、查询索引 / 元数据。导致文件选择窗口打开巨慢。这不是 Chrome 或者&nbsp;Firefox 的锅,而是桌面架构本身的问题。</p>
<p>经过一系列搜索及尝试,终于找到了一个可行方案,虽然不能像windows那样流畅,但是至少不会有十几二十秒甚至直接卡死的情况了。以下是解决方案。</p>
<p class="maodian"></p><h2>解决方案:</h2>
<p class="maodian"></p><h3>1. Tracker3</h3>
<p>Tracker 带来的&ldquo;全文搜索&rdquo;对我几乎没用,但性能影响巨大,所以直接禁用。</p>
<div class="dxycode"><pre class="brush:bash;"># 停止 Tracker 服务
systemctl --user stop tracker-miner-fs-3.service
systemctl --user stop tracker-extract-3.service
# 防止开机自动启动
systemctl --user mask tracker-miner-fs-3.service
systemctl --user mask tracker-extract-3.service</pre></div>
<p><img alt="1. Tracker3" src="https://zhuji.jb51.net/uploads/allimg/20251229/2-2512291F910W4.png" /></p>
<p>验证是否生效:</p>
<div class="dxycode"><pre class="brush:bash;">systemctl --user status tracker-miner-fs-3</pre></div>
<p><img alt="1. Tracker3_图2" src="https://zhuji.jb51.net/uploads/allimg/20251229/2-2512291F910a9.png" /></p>
<p>如果看到类似dead或者stop等字样,说明禁用成功。禁用后有什么不良影响吗,有,但是通常不重要。禁用后GNOME 全局搜索无法搜索&ldquo;文件内容&rdquo;,只能按文件名,但是不影响文件读写、不影响开发、不影响终端工具。对开发者 / 高性能桌面用户来说,这是净收益。</p>
<p class="maodian"></p><h3>2. 禁用部分缩略图,只对 &le;100MB 的文件生成缩略图</h3>
<p>我并不想完全关掉缩略图,于是采用 GNOME 支持但默认没调好的方案:</p>
<div class="dxycode"><pre class="brush:bash;"># 只对本地文件生成缩略图
gsettings set org.gnome.nautilus.preferences show-image-thumbnails 'local-only'
# 限制缩略图生成文件大小(MB)
gsettings set org.gnome.nautilus.preferences thumbnail-limit 100</pre></div>
<p>含义很关键:小图片 / 小视频:正常显示缩略图。但是对于大视频 / 大素材 / 大 PDF:不再阻塞文件夹打开。这是一个性能和体验的最佳平衡点。设置后重启文件管理器即可:</p>
<div class="dxycode"><pre class="brush:bash;">nautilus -q</pre></div>
<p>现在即可测试下,如果速度满是慢,直接重启系统。体验下速度飞升的感觉吧。</p>
<p class="maodian"></p><h2>Ubuntu系统用起来卡顿的问题解决办法</h2>
<p class="maodian"></p><h3>可能原因1 物理内存swappiness设置值太大</h3>
<p>通过调整swappiness来解决</p>
<p>打开终端,输入以下代码</p>
<div class="dxycode"><pre class="brush:bash;">cat /proc/sys/vm/swappiness</pre></div>
<p>得到结果应该是:60</p>
<p>这个表示的是使用的物理内存(0是最大限度使用物理内存),所以数值越低,速度理论来说是越快。接下来我们来永久改这个数值。</p>
<p>在终端输入</p>
<div class="dxycode"><pre class="brush:bash;">sudo gedit /etc/sysctl.conf</pre></div>
<p>这时出现一个文档,在任意一个空行,加入下面这个代码</p>
<div class="dxycode"><pre class="brush:bash;">vm.swappiness=10</pre></div>
<p><img alt="" src="https://zhuji.jb51.net/uploads/allimg/20251229/2-2512291F910255.png" /></p>
<p>然后,点保存,关闭文档。可以两次执行,看看结果是不是10,如果是10则修改成功。</p>
<div class="dxycode"><pre class="brush:bash;">cat /proc/sys/vm/swappiness</pre></div>
<p class="maodian"></p><h3>可能原因2&nbsp;磁盘占满</h3>
<p>执行以下命令,用于查看已经挂载的硬盘使用情况</p>
<div class="dxycode"><pre class="brush:bash;">df -h</pre></div>
<p>结果如图所示:</p>
<p><img alt="" src="https://zhuji.jb51.net/uploads/allimg/20251229/2-2512291F9101D.png" /></p>
<p>如果你的最大磁盘基本满了,你可以做以下操作试试,你也可以换其它方法。</p>
<p>卸载自动装且不再使用的软件包,可能会误删非apt-get管理的软件包,谨慎使用!!!</p>
<div class="dxycode"><pre class="brush:bash;">sudo apt-get autoremove</pre></div>
<p>如果磁盘还是很满,接下来执行清理命令:</p>
<div class="dxycode"><pre class="brush:bash;">sudo apt-get autoclean         // 清理旧版本的软件缓存
sudo apt-get clean                //清理所有软件缓存
sudo apt-get autoremove      //    删除系统不再使用的孤立软件
sudo rm -rf /home/用户名/.local/share/Trash/*</pre></div>
<p>最后一条命令记得吧用户名换成你常用的用户名,如果其他的用户你也经常用,那么都执行一次</p>
<p>到此为止,我的问题就解决了。如下图:</p>
<p><img alt="" src="https://zhuji.jb51.net/uploads/allimg/20251229/2-2512291F910550.png" /></p>
<p class="maodian"></p><h3>可能原因3 退出光盘</h3>
<p>不知道是不是这个原因,我退出了光盘,运行速度就快了很多,在左侧有光盘图标上右键选择unmount和Eject即可</p>
<p>以上就是Ubuntu/Linux/Gnome 打开文件慢/卡死怎么?如何解决的详细内容,更多相关资料请阅读琼殿技术社区其它文章!</p>
頁: [1]
查看完整版本: Ubuntu/Linux/Gnome 打开文件慢/卡死怎么办?如何解决?