如何让 Ubuntu 18.04 和 Visual Studio 运行得更快?

如何让 Ubuntu 18.04 和 Visual Studio 运行得更快?

我是 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 运行:

top 命令的结果: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
  • grep -i FPDMA /var/log/syslog* 没有给出任何结果
  • 应用程序磁盘中的 SMART 数据和自我检测的屏幕截图: 智能数据和自我测试

编辑 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 和删除您的交换分区来增加您的交换。

笔记:错误使用rmdd命令可能会导致数据丢失。建议复制/粘贴。

在里面terminal...

sudo swapoff -a           # turn off swap
sudo rm -i /swapfile # 删除旧的 /swapfile
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_namecatkin 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 时它不会让我生气

相关内容