VSCode在CentOS 7.9启动后,两个进程分别占CPU 100%,界面卡住无法点击

本文主要是介绍VSCode在CentOS 7.9启动后,两个进程分别占CPU 100%,界面卡住无法点击,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

VSCode在CentOS 7.9启动后,两个进程分别占CPU 100%,界面卡住无法点击

环境描述

OS: CentOS 7.9
App: vscode 1.60.0

问题描述

通过命令/app/opensrc/vscode/1.60.0/share/code-insiders/code-insiders命令启动,terminal中刷大量的错误信息,应用界面能弹出来但是无法操作,是卡住的。
在这里插入图片描述
从另外一个terminal中查看vscode的进程,发现两个进程占用100%的CPU。
在这里插入图片描述

问题定位

使用strace追踪,发现卡住后刷的都是futex系统调用。但未定位到是在等待什么资源就绪。

于是查看了一下vscode帮助,可以使用--verbose来输出运行时的详细信息:

[thesre@icinfra ~]$ /app/opensrc/vscode/1.60.0/share/code-insiders/code-insiders --verbose |& egrep -o "Error: .* version .* not found" | sort -u
Error: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found
Error: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found
Error: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found

可以看到,有3个symbol版本没找到。需要找一个提供满足这些符号版本的libstdc++.so.6

问题解决

加载高版本GCC(本案例加载的是gcc-10.2.0-gcc-9.4.0-xavznvl),再运行vscode,发现没有找不到的符号了,如下所示:

[thesre@icinfra ~]$ module avail gcc #查看所有gcc版本
-------------------------- /app/spack-0.16.2/share/spack/modules/linux-centos7-sandybridge ---------------------------
gcc-10.2.0-gcc-9.4.0-xavznvl  Key:
loaded  modulepath  
[thesre@icinfra ~]$ module show gcc-10.2.0-gcc-9.4.0-xavznvl # 查看是否设置了共享库路径到LD_LIBRARY_PATH,是有设置的。
-------------------------------------------------------------------
/app/spack-0.16.2/share/spack/modules/linux-centos7-sandybridge/gcc-10.2.0-gcc-9.4.0-xavznvl:module-whatis   {The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Ada, and Go, as well as libraries for these languages.}
prepend-path    LD_LIBRARY_PATH /app/spack-0.16.2/opt/spack/linux-centos7-sandybridge/gcc-9.4.0/gcc-10.2.0-xavznvl7ibbj6w7d2hvmzn3cfz3oosyn/lib
prepend-path    LIBRARY_PATH /app/spack-0.16.2/opt/spack/linux-centos7-sandybridge/gcc-9.4.0/gcc-10.2.0-xavznvl7ibbj6w7d2hvmzn3cfz3oosyn/lib
prepend-path    LD_LIBRARY_PATH /app/spack-0.16.2/opt/spack/linux-centos7-sandybridge/gcc-9.4.0/gcc-10.2.0-xavznvl7ibbj6w7d2hvmzn3cfz3oosyn/lib64
prepend-path    LIBRARY_PATH /app/spack-0.16.2/opt/spack/linux-centos7-sandybridge/gcc-9.4.0/gcc-10.2.0-xavznvl7ibbj6w7d2hvmzn3cfz3oosyn/lib64
prepend-path    PATH /app/spack-0.16.2/opt/spack/linux-centos7-sandybridge/gcc-9.4.0/gcc-10.2.0-xavznvl7ibbj6w7d2hvmzn3cfz3oosyn/bin
prepend-path    MANPATH /app/spack-0.16.2/opt/spack/linux-centos7-sandybridge/gcc-9.4.0/gcc-10.2.0-xavznvl7ibbj6w7d2hvmzn3cfz3oosyn/share/man
prepend-path    C_INCLUDE_PATH /app/spack-0.16.2/opt/spack/linux-centos7-sandybridge/gcc-9.4.0/gcc-10.2.0-xavznvl7ibbj6w7d2hvmzn3cfz3oosyn/include
prepend-path    CPLUS_INCLUDE_PATH /app/spack-0.16.2/opt/spack/linux-centos7-sandybridge/gcc-9.4.0/gcc-10.2.0-xavznvl7ibbj6w7d2hvmzn3cfz3oosyn/include
prepend-path    INCLUDE /app/spack-0.16.2/opt/spack/linux-centos7-sandybridge/gcc-9.4.0/gcc-10.2.0-xavznvl7ibbj6w7d2hvmzn3cfz3oosyn/include
prepend-path    CMAKE_PREFIX_PATH /app/spack-0.16.2/opt/spack/linux-centos7-sandybridge/gcc-9.4.0/gcc-10.2.0-xavznvl7ibbj6w7d2hvmzn3cfz3oosyn/
setenv          CC /app/spack-0.16.2/opt/spack/linux-centos7-sandybridge/gcc-9.4.0/gcc-10.2.0-xavznvl7ibbj6w7d2hvmzn3cfz3oosyn/bin/gcc
setenv          CXX /app/spack-0.16.2/opt/spack/linux-centos7-sandybridge/gcc-9.4.0/gcc-10.2.0-xavznvl7ibbj6w7d2hvmzn3cfz3oosyn/bin/g++
setenv          FC /app/spack-0.16.2/opt/spack/linux-centos7-sandybridge/gcc-9.4.0/gcc-10.2.0-xavznvl7ibbj6w7d2hvmzn3cfz3oosyn/bin/gfortran
setenv          F77 /app/spack-0.16.2/opt/spack/linux-centos7-sandybridge/gcc-9.4.0/gcc-10.2.0-xavznvl7ibbj6w7d2hvmzn3cfz3oosyn/bin/gfortran
-------------------------------------------------------------------
[thesre@icinfra ~]$ find /app/spack-0.16.2/opt/spack/linux-centos7-sandybridge/gcc-9.4.0/gcc-10.2.0-xavznvl7ibbj6w7d2hvmzn3cfz3oosyn/ -name libstdc++.so.6 #从这个gcc版本下找libstdc++.so.6
/app/spack-0.16.2/opt/spack/linux-centos7-sandybridge/gcc-9.4.0/gcc-10.2.0-xavznvl7ibbj6w7d2hvmzn3cfz3oosyn/lib64/libstdc++.so.6
[thesre@icinfra ~]$ strings /app/spack-0.16.2/opt/spack/linux-centos7-sandybridge/gcc-9.4.0/gcc-10.2.0-xavznvl7ibbj6w7d2hvmzn3cfz3oosyn/lib64/libstdc++.so.6 | egrep 'CXXABI_1.3.9|GLIBCXX_3.4.20|GLIBCXX_3.4.21' | sort -u #从这个libstdc++.so.6文件中,能找到上面not found的三个symbol版本
CXXABI_1.3.9
GLIBCXX_3.4.20
GLIBCXX_3.4.21
[thesre@icinfra ~]$ module load gcc-10.2.0-gcc-9.4.0-xavznvl #加载gcc-10.2.0-gcc-9.4.0-xavznvl
[thesre@icinfra ~]$ /app/opensrc/vscode/1.60.0/share/code-insiders/code-insiders --verbose |& grep 'not found'
# 无输出,说明库/符号版本满足。

界面正常打开
在这里插入图片描述
再打开top看下CPU使用情况,发现还是两个进程占用近100%的CPU,但程序能够正常地跑起来了,本案例的CPU利用率高没有说明什么问题。
在这里插入图片描述

总结

不同的工具,其debug的方式不一样。部分工具未向普通用户提供debug信息;部分则提供,但要通过设置变量或指明选项,来将其显示出来。

本例中,vscode要指定--verbose来显示debug信息。

这篇关于VSCode在CentOS 7.9启动后,两个进程分别占CPU 100%,界面卡住无法点击的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/858003

相关文章

MySQL中优化CPU使用的详细指南

《MySQL中优化CPU使用的详细指南》优化MySQL的CPU使用可以显著提高数据库的性能和响应时间,本文为大家整理了一些优化CPU使用的方法,大家可以根据需要进行选择... 目录一、优化查询和索引1.1 优化查询语句1.2 创建和优化索引1.3 避免全表扫描二、调整mysql配置参数2.1 调整线程数2.

Spring Boot项目如何使用外部application.yml配置文件启动JAR包

《SpringBoot项目如何使用外部application.yml配置文件启动JAR包》文章介绍了SpringBoot项目通过指定外部application.yml配置文件启动JAR包的方法,包括... 目录Spring Boot项目中使用外部application.yml配置文件启动JAR包一、基本原理

解决若依微服务框架启动报错的问题

《解决若依微服务框架启动报错的问题》Invalidboundstatement错误通常由MyBatis映射文件未正确加载或Nacos配置未读取导致,需检查XML的namespace与方法ID是否匹配,... 目录ruoyi-system模块报错报错详情nacos文件目录总结ruoyi-systnGLNYpe

解决hive启动时java.net.ConnectException:拒绝连接的问题

《解决hive启动时java.net.ConnectException:拒绝连接的问题》Hadoop集群连接被拒,需检查集群是否启动、关闭防火墙/SELinux、确认安全模式退出,若问题仍存,查看日志... 目录错误发生原因解决方式1.关闭防火墙2.关闭selinux3.启动集群4.检查集群是否正常启动5.

Springboot项目启动失败提示找不到dao类的解决

《Springboot项目启动失败提示找不到dao类的解决》SpringBoot启动失败,因ProductServiceImpl未正确注入ProductDao,原因:Dao未注册为Bean,解决:在启... 目录错误描述原因解决方法总结***************************APPLICA编

解决pandas无法读取csv文件数据的问题

《解决pandas无法读取csv文件数据的问题》本文讲述作者用Pandas读取CSV文件时因参数设置不当导致数据错位,通过调整delimiter和on_bad_lines参数最终解决问题,并强调正确参... 目录一、前言二、问题复现1. 问题2. 通过 on_bad_lines=‘warn’ 跳过异常数据3

kkFileView启动报错:报错2003端口占用的问题及解决

《kkFileView启动报错:报错2003端口占用的问题及解决》kkFileView启动报错因office组件2003端口未关闭,解决:查杀占用端口的进程,终止Java进程,使用shutdown.s... 目录原因解决总结kkFileViewjavascript启动报错启动office组件失败,请检查of

Linux下在线安装启动VNC教程

《Linux下在线安装启动VNC教程》本文指导在CentOS7上在线安装VNC,包含安装、配置密码、启动/停止、清理重启步骤及注意事项,强调需安装VNC桌面以避免黑屏,并解决端口冲突和目录权限问题... 目录描述安装VNC安装 VNC 桌面可能遇到的问题总结描js述linux中的VNC就类似于Window

linux下shell脚本启动jar包实现过程

《linux下shell脚本启动jar包实现过程》确保APP_NAME和LOG_FILE位于目录内,首次启动前需手动创建log文件夹,否则报错,此为个人经验,供参考,欢迎支持脚本之家... 目录linux下shell脚本启动jar包样例1样例2总结linux下shell脚本启动jar包样例1#!/bin

Spring Boot配置和使用两个数据源的实现步骤

《SpringBoot配置和使用两个数据源的实现步骤》本文详解SpringBoot配置双数据源方法,包含配置文件设置、Bean创建、事务管理器配置及@Qualifier注解使用,强调主数据源标记、代... 目录Spring Boot配置和使用两个数据源技术背景实现步骤1. 配置数据源信息2. 创建数据源Be