Linux
文章平均质量分 68
Bussy-Lake
打工搬砖
展开
-
定位解决一个进程CPU占用过高的问题
一般线程CPU使用率过高的问题就是有while死循环一直在跑,但是没有对线程进行sleep或者usleep,导致线程空跑,CPU使用率飙升。linux下某个进程的CPU利用率一直在100%以上,明显不正常。top查看进程使用情况,发现某进程的CPU使用率在100%以上。top -H显示所有线程的CPU使用率。可以看到CPU使用率已经到了100%定位具体线程CPU使用情况。找到CPU使用率高的线程。发现CPU已经降下来了。分析具体代码解决问题。启一个线程一直在死循环。再次查看CPU使用率。原创 2024-04-24 10:04:47 · 171 阅读 · 0 评论 -
C++ Linux动态库的编译和调用
如果我们在动态库的制作中,接受了这个名字改编,那对方调用加载这个符号时,就需要根据提供的so的实际符号名进行加载,那将很麻烦,所以一般都是采用C语言的规则来解决这个问题,即采用extern "C"的方式。动态库的代码段不能在进程间共享:多个进程加载同一个动态库到各自不同的地址空间,导致代码段需要不同的重定位,所以最终每个引用该动态库的进程拥有一份该动态库代码段的不同拷贝。):在C++中,有函数重载的特性,所以编译器在编译时会出现符号名称相同的问题,为了解决这个问题,就有了名字改编。原创 2024-01-18 22:51:35 · 1382 阅读 · 0 评论 -
Zookeeper启动报错常见问题以及常用zk命令
Zk常规启动的命令如下启动过程如果存在失败,是没办法直接看出什么问题,只会报出来可以用如下命令启动,便于查看zk启动过程中的详细错误。原创 2024-01-17 13:57:05 · 771 阅读 · 0 评论 -
Centos系统升级gcc版本
3、安装完成后,可以使用以下命令切换到所安装的GCC版本,这样就能够在当前终端会话中使用所安装的GCC版本。2、根据需求选择并安装特定版本的GCC。比如,安装DevToolset 9。自己环境的gcc版本太低,影响使用SAN全家桶进行内存泄露检查。4、或者永久性地设置默认的GCC版本,可以创建一个符号链接。安装完成后会更新为最新的gcc版本。3、安装GCC编译器及其相关工具包。2、确保系统已经更新到最新版本。存储库提供的不同版本,安装。当前环境gcc版本查看。1、安装EPEL存储库。5、查看更新后的版本。原创 2023-12-22 16:38:57 · 2055 阅读 · 1 评论 -
Linux下查看共享文件(so库)的编译是32位还是64位
执行该命令后,会显示.so文件的类型和架构信息。如果输出中含有"ELF 32-bit",则表示该.so文件是32位的;如果输出中含有"ELF 64-bit",则表示该.so文件是64位的。#采用readelf的-h参数 查看当前文件的头信息,会显示ELF文件的文件头信息,包括ELF类型、位数、入口地址、节表偏移等。file 命令可以用于查看文件的类型。它会根据文件的内容进行分析,给出详细的文件类型信息。file的常用参数选项。原创 2023-06-30 17:19:48 · 2098 阅读 · 0 评论 -
一文搞懂linux的proc文件
最近由于定位问题,频繁查看一些proc的文件信息,所以索性就一文撸到底,把proc翻个底朝天吧。在linux系统/proc目录中一些文件,记录一些系统运行时的信息,比如内存信息、网络信息、cpu信息等,但是要注意的是,这个目录下并不是保存真正的文件或者目录,只是一个伪文件系统。它只是保存在内存中,不是持久化的文件。可以理解为内核开放的一个集中查询系统信息的地方,方便查找使用,符合linux文件系统的习惯。原创 2023-05-07 13:02:54 · 2512 阅读 · 0 评论