我是 Ubuntu Linux 的新手,刚刚在双启动模式下在计算机上安装了 18.04 版和 Windows 版。但是,三周后,Linux 开始变得非常慢,当它无法高效运行我的代码时,它甚至每天会崩溃几次。当我运行时,它会完全停止构建包,catkin build
以至于我不得不关掉笔记本电脑。
我尝试了以下方法:
查看 CPU 规格
lspcu
,这是好的查看电脑品牌和型号,
system information
获得sudo dmidecode | less
在以下网站找到的一些解决方案:https://www.maketecheasier.com/linux-running-too-slow-heres-how-to-find-the-cause/。例如:检查我的 CPU 大小(似乎没问题)、检查 CPU 负载
top
(似乎没有进程滥用我的 CPU 使用率)以及检查我的硬盘是否超负荷工作iotop
(事实并非如此)。使用以下命令检查系统
systemd-analyze blame
:19.606s apt-daily.service 6.913s NetworkManager-wait-online.service 4.019s plymouth-quit-wait.service 3.163s apt-daily-upgrade.service 2.258s bolt.service 1.391s snap-gnome\x2d3\x2d34\x2d1804-66.mount 1.354s snap-onenote\x2ddesktop-13.mount 1.352s snap-gnome\x2dcalculator-826.mount 1.337s dev-sda7.device 1.332s snap-gnome\x2dcharacters-570.mount 1.241s snap-dub-53.mount 1.206s snap-gtk\x2dcommon\x2dthemes-1514.mount 1.172s snap-snapd-11107.mount 1.100s snap-gnome\x2dcalculator-884.mount 1.031s snap-gnome\x2dsystem\x2dmonitor-148.mount 1.013s snap-gnome\x2dlogs-103.mount 993ms snapd.service 971ms snap-core-10958.mount 912ms snap-code-59.mount 911ms dev-loop4.device 878ms dev-loop5.device 857ms fwupd.service 835ms dev-loop2.device
看起来上面的线路占用了很多时间,所以这可能是问题的原因?
- 需要注意的是,我的 Ubuntu 运行缓慢主要是因为我使用 Visual Studio Code 时间太长了——当我的 Ubuntu 刚刚启动时,它运行良好,但过了一段时间它变得越来越慢。我再次使用命令检查了
top
在 Visual Studio Code 中运行代码时的 CPU 使用率,似乎这可能会导致问题,因为 cc1plus 命令以 99-100% 的 CPU 运行:
- 我也查看了 /var/log/syslog 错误,并且
cat var/log/syslog | grep 'error'
多次出现了以下错误:
Apr 16 13:48:06 jessie-HP-ZBook-Studio-G3 gnome-shell[1321]: Error setting property 'Powered' on interface org.bluez.Adapter1: GDBus.Error:org.bluez.Error.Blocked: Blocked through rfkill (g-io-error-quark, 36)
发生的其他错误(尽管不那么常见)包括:
Apr 16 13:48:07 jessie-HP-ZBook-Studio-G3 org.gnome.Shell.desktop[1957]: [4212:4212:0416/134807.054559:ERROR:gpu_service_impl.cc(1177)] Exiting GPU process because some drivers can't recover from errors. GPU process will restart shortly.
Apr 16 15:11:04 jessie-HP-ZBook-Studio-G3 kernel: [ 6106.242652] traps: ocs2_controller[14048] general protection fault ip:7f96415d58da sp:7ffd54f40af8 error:0 in libocs2_centroidal_planner.so[7f96414fa000+258000]
Apr 16 15:18:21 jessie-HP-ZBook-Studio-G3 org.gnome.Shell.desktop[1957]: Fontconfig error: Cannot load default config file: No such file: (null)
Apr 16 16:36:57 jessie-HP-ZBook-Studio-G3 kernel: [ 0.173308] ACPI Error: Aborting method \_SB._OSC due to previous error (AE_AML_BUFFER_LIMIT) (20190816/psparse-531)
Apr 16 16:36:57 jessie-HP-ZBook-Studio-G3 kernel: [ 6.312196] EXT4-fs (sda7): re-mounted. Opts: errors=remount-ro
Apr 16 16:36:57 jessie-HP-ZBook-Studio-G3 kernel: [ 6.736341] hp_accel: probe of HPQ6007:00 failed with error -22
Apr 16 16:36:59 jessie-HP-ZBook-Studio-G3 snapd[1048]: stateengine.go:150: state ensure error: Get https://api.snapcraft.io/api/v1/snaps/sections: dial tcp: lookup api.snapcraft.io: no such host
- 最后,我进入文件夹 /var/crash 并在那里查找文件(
ls -a
),但是没有找到任何文件,我的终端唯一显示的是点:. ..
有谁知道在运行代码时在哪里查找这些崩溃的原因,以及主要原因是我的 Ubuntu / 双启动还是 Visual Studio Code?很抱歉提出这样一个不清楚的一般性问题。如果需要其他信息,我会提供。
编辑:@heynnema 建议显示以下命令的输出:
ls -al /var/crash
:
total 8
drwxrwsrwt 2 root whoopsie 4096 apr 1 14:17 .
drwxr-xr-x 15 root root 4096 nov 17 15:50 ..
grep -i swap /etc/fstab
:
# swap was on /dev/sda8 during installation
UUID=7d274857-3e37-4991-8dda-48a22bfdf7b6 none swap sw 0 0
sysctl vm.swappiness
:
vm.swappiness = 60
编辑 2:@heynnema 以下命令的结果:
sudo lshw -C memory
:
*-cache:0
description: L1 cache
physical id: 0
slot: L1 Cache
size: 128KiB
capacity: 128KiB
capabilities: synchronous internal write-back data
configuration: level=1
*-cache:1
description: L1 cache
physical id: 1
slot: L1 Cache
size: 128KiB
capacity: 128KiB
capabilities: synchronous internal write-back instruction
configuration: level=1
*-cache:2
description: L2 cache
physical id: 2
slot: L2 Cache
size: 1MiB
capacity: 1MiB
capabilities: synchronous internal write-back unified
configuration: level=2
*-cache:3
description: L3 cache
physical id: 3
slot: L3 Cache
size: 6MiB
capacity: 6MiB
capabilities: synchronous internal write-back unified
configuration: level=3
*-memory
description: System Memory
physical id: 5
slot: System board or motherboard
size: 8GiB
*-bank:0
description: SODIMM DDR4 Synchronous Unbuffered (Unregistered) 2133 MHz (0,5 ns)
product: M471A1K43CB1-CRC
vendor: Samsung
physical id: 0
serial: 0305815B
slot: Top-Slot 1(left)
size: 8GiB
width: 64 bits
clock: 2133MHz (0.5ns)
*-bank:1
description: [empty]
physical id: 1
slot: Top-Slot 2(right)
*-firmware
description: BIOS
vendor: HP
physical id: b
version: N82 Ver. 01.45
date: 01/05/2020
size: 64KiB
capacity: 15MiB
capabilities: pci pcmcia upgrade shadowing cdboot bootselect edd int5printscreen int9keyboard int14serial int17printer acpi usb smartbattery biosbootspecification netboot uefi
*-memory UNCLAIMED
description: Memory controller
product: 100 Series/C230 Series Chipset Family Power Management Controller
vendor: Intel Corporation
physical id: 1f.2
bus info: pci@0000:00:1f.2
version: 31
width: 32 bits
clock: 33MHz (30.3ns)
configuration: latency=0
resources: memory:e5348000-e534bfff
sudo dmidecode -s bios-version
:
N82 Ver. 01.45
- 主板信息
sudo dmidecode -t 2
:
# dmidecode 3.1
Getting SMBIOS data from sysfs.
SMBIOS 2.7 present.
Handle 0x000D, DMI type 2, 17 bytes
Base Board Information
Manufacturer: HP
Product Name: 80D4
Version: KBC Version 11.75
Serial Number: PFPLFM11T540O0
Asset Tag:
Features:
Board is a hosting board
Location In Chassis:
Chassis Handle: 0x0000
Type: Motherboard
Contained Object Handles: 0
- 电脑型号:
HP ZBook Studio G3
编辑@heynnema 我按照 Swap 步骤进行操作,但是,当使用sudo -H gedit /etc/fstab
并尝试注释掉该行时/swapfile none swap sw 0 0
,我找不到它,见截图:
/etc/fstab 编辑文件
答案1
交换
我怀疑您的 4G 交换分区对于您当前的使用来说太小了。
笔记:您可能需要添加更多 RAM(参见更新 #1)。
我们将通过创建新的 /swapfile、编辑 /etc/fstab 和删除您的交换分区来增加您的交换。
笔记:错误使用rm
和dd
命令可能会导致数据丢失。建议复制/粘贴。
在里面terminal
...
sudo swapoff -a # turn off swap
sudo dd if=/dev/zero of=/swapfile bs=1M count=8192
sudo chmod 600 /swapfile # set proper file protections
sudo mkswap /swapfile # init /swapfile
sudo swapon /swapfile # turn on swap
free -h # confirm 8G RAM and 8G swap
sudo -H gedit /etc/fstab
使用或编辑 /etc/fstab sudo pico /etc/fstab
。
确认 /etc/fstab 中的此 /swapfile 行...并确认没有其他“交换”行...在此行中使用空格...确认没有制表符...
注释掉这一行...
UUID=7d274857-3e37-4991-8dda-48a22bfdf7b6 none swap sw 0 0
添加此行...
/swapfile none swap sw 0 0
使用 删除旧的交换分区gparted
。确认使用 确认 /dev/sda8 的 UUID=7d274857-3e37-4991-8dda-48a22bfdf7b6 sudo blkid | grep -i swap
。如果匹配,则删除 /dev/sda8 分区。小心这一点。
reboot # reboot and verify operation
更新#1:
柔荑花序
我建议更改catkin build -j1 package_name
为catkin build -j7 package_name
(在 8 CPU 系统上使用 7 个 CPU)以优化构建过程。
BIOS
HP ZBook Studio G3 移动工作站
您拥有的 BIOS 版本为 N82 Ver. 01.45,发布日期为 2020 年 1 月 17 日。自 2020 年 11 月 6 日起,有更新的 BIOS 版本 01.52 Rev.A 可用这里。
注意:确认我拥有适合您型号的正确网页。
注意:更新 BIOS 前请做好备份
记忆
您有两个内存插槽中的一个,其中装有 8G SODIMM。
*-bank:0
description: SODIMM DDR4 Synchronous Unbuffered (Unregistered) 2133 MHz (0,5 ns)
product: M471A1K43CB1-CRC
vendor: Samsung
physical id: 0
serial: 0305815B
slot: Top-Slot 1(left)
size: 8GiB
width: 64 bits
clock: 2133MHz (0.5ns)
用另一个 8G Samsung M471A1K43CB1-CRC 填充第二个空插槽,以使用内存交叉存取,从而实现 16G 总 RAM。参见https://www.amazon.com/Samsung-Notebook-Memory-M471A1K43CB1-CRC-DDR4-2400/dp/B06XPWJJPL。
注意:我需要检查这台计算机的最大 RAM 是多少...
注:来源https://support.hp.com/us-en/product/hp-zbook-studio-g3-mobile-workstation/8934839/product-info
答案2
我尝试了很多方法,最后向微软技术人员询问
他说,如果较少的启动附加组件没有帮助,那么真正的解决方案就是在 SSD 上运行!
我最终购买了三星 980 pro 7kRW nvme
说实话,与之前相比,这就像将飞鸟与小乌龟进行比较!虽然成本有点高,但至少每次使用 Visual Studio 时它不会让我生气