自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 linux下NUMA实战

环境:centos7一.NUMA介绍见我的上一篇博客NUMA介绍二.numactl工具numactl工具可用于查看当前服务器的NUMA节点配置、状态,可通过该工具将进程绑定到指定CPU core,由指定CPU core来运行对应进程。这个命令可以将某个进程绑定到某个node或某个node上的某个或某组核心上。1.安装numactl工具:yum -y install numactl2.numactl工具使用:numactl -H 查看当前服务器的NUMA配置。服务器共划分为4

2020-12-31 20:24:20 2760 1

原创 linux下numa详解

一.SMP介绍即对称多处理器结构,是指多个CPU对称工作,无主次或从属关系。各CPU共享相同的物理内存,每个 CPU访问内存中的任何地址所需时间是相同的,因此SMP也被称为一致存储器(UMA)。对SMP计算机进行扩展的方式包括增加内存、使用更快的CPU、增加CPU数量、扩充I/O(槽口数与总线数)以及添加更多的外部设备(通常是磁盘存储)。SMP服务器的主要特征是共享,系统中所有资源(CPU、内存、I/O等)都是共享的。也正是由于这种特征,导致了SMP服务器的主要问题,那就是它的扩展能力非常有限。对于SM

2020-12-31 19:39:28 3151 1

原创 linux下自己编写的内核模块的调度策略

环境:ubuntu16.04一.介绍在linux中为我们提供了内核接口让我们可以编写内核模块,将内核模块加入到内核中运行。但是内核模块是以何种策略来调度的?二.编写内核模块编写hello.c:vi hello.c在hello.c中输入如下代码://必要的头文件#include <linux/module.h>#include <linux/kernel.h>#include <linux/init.h>//模块许可证声明(必须)MODULE_LI

2020-12-29 10:13:59 1092 4

原创 linux下TASK_UNINTERRUPTIBLE解析

一.TASK_UNINTERRUPTIBLE状态介绍TASK_UNINTERRUPTIBLE状态是一种不可中断的睡眠状态,不可以被信号打断,必须等到等待的条件满足时才被唤醒。这个状态通常在进程必须等待时不受干扰或所等待的事件很快发生时使用。二.进程出现TASK_UNINTERRUPTIBLE状态解决方案在终端中输入命令:ps aux在出来的信息中有一列STAT状态,如果出现D状态就是TASK_UNINTERRUPTIBLE,出现这种状态时,你会发现你杀不死这种进程,但是linux内核已经想好了办

2020-12-29 08:50:47 4611 2

原创 linux下udev详解

一.udev简介udev是一个设备管理工具,udev以守护进程的形式运行,通过侦听内核发出来的uevent来管理/dev目录下的设备文件。udev在用户空间运行,而不在内核空间 运行。它能够根据系统中的硬件设备的状态动态更新设备文件,包括设备文件的创建,删除等。设备文件通常放在/dev目录下。使用udev后,在/dev目录下就只包含系统中真正存在的设备。二.udev的配置文件主要的udev配置文件是/etc/udev/udev.conf文件。udev_root="/dev/"udev_rules

2020-12-28 21:46:47 11624 1

原创 linux下找出内核符号信息的4种方法

在内核调试中由一个符号的地址找到对应的符号名称非常有助于我们对内核的调试。下面将介绍4种方式来获得内核符号信息的4种方法。1.从 System.map 文件中得到地址System.map文件在编译内核时生成,包含了内核在编译时的静态符号信息。grep do_fork /boot/System.map-4.15.0-128-generic 就可以通过do_fork函数名来获得函数的地址grep ffffffff810905b0 /boot/System.map-4.15.0-128-generi

2020-12-27 09:34:58 3495 3

原创 linux下vmlinuz到vmlinux的转换

1.vmlinux与vmlinuz的区别vmlinux:是内核编译出来的原始的内核文件未经压缩的。是ELF格式的,但是我们一般不用。vmlinuz:是可引导的、压缩的内核。2.vmlinuz到vmlinux的转换方法(1)执行命令od -t x1 -A d vmlinuz-4.15.0-128-generic |grep "1f 8b 08 00"找到“1f 8b 08 00”这个数字,输出结果如下:(2)执行命令dd if=vmlinuz-4.15.0-128-generic bs=1 ski

2020-12-27 08:44:56 1745 2

原创 linux下开机自动挂载内核模块详解

环境:ubuntu16.04linux下开机自动挂载内核模块方法:1.打开/etc/moudles文件添加模块名字(不要带.ko)vim /etc/moudles2.将模块添加到/lib/modules/(uname -r)下的对应目录下例如:/lib/modules/4.15.0-128-generic/kernel/drivers/char3.分析可加载模块的依赖性,生成modules.dep文件和映射文件执行:depmod -a命令。4.关机重启执行:lsmod |grep he

2020-12-24 21:44:19 2714 2

原创 iperf网络工具使用小结

一.iperf使用方法及详解iperf的使用方法及详解可以参考我的另一篇博客https://editor.csdn.net/md/?articleId=111604162二.iperf使用过程中的小结以下来自工作中使用iperf时遇到的问题:使用iperf测试一个网络设备的传输速率:(1)测试环境:两台windows7的笔记本电脑和一个网络设备。测试方法:两台笔记本中间接网络设备。一个笔记本发送数据,数据经过网络设备然后另一台笔记本来接收数据。按照网络设备的说明,此设备可以最大传输速率可以达到

2020-12-24 10:59:37 293 1

原创 网络测试工具iperf

一.iperf的简介:Iperf 是一个网络性能测试工具。iperf既可以使用在windows下,也可以使用在linux下。windows版本的使用教程——linux版本的使用教程二.iperf的功能:TCP(1)测量网络带宽(2)报告MSS/MTU值的大小和观测值(3)支持TCP窗口值通过套接字缓冲(4)当P线程或Win32线程可用时,支持多线程。客户端与服务端支持同时多重连接UDP(1)客户端可以创建指定带宽的UDP流(2)测量丢包(3)测量延迟(4)支持多播(5)支持多线程。

2020-12-24 10:13:43 177 1

原创 centos安装软件的时候,提示make: command not found

Centos中无法使用make,make install,命令 make: command not foundmake是gcc的编译器安装:yum -y install gcc automake autoconf libtool make安装g++:yum install gcc gcc-c++

2020-12-24 09:14:12 2392

原创 Linux下内存、Swap、Cache、Buff详解

环境:ubuntu16.041.执行命令free输出如下:Mem:是内存的使用情况。total:总内存大小。used:已经使用的内存大小(这里面包含cached和buffers和shared部分)。free:空闲的内存大小。shared:进程间共享内存(一般不会用,可以忽略)。buff:内存中写完的东西缓存起来,这样快速响应请求,后面数据再定期刷到磁盘上。cached:内存中读完缓存起来内容占的大小(这部分是为了下次查询时快速返回)。*available:显示还可以被应用程序使用的物理内

2020-12-24 08:59:09 1241 2

原创 linux下oops与ksymoops、System.map和kallsyms的关系

ghggkjj

2020-12-21 20:19:10 652 1

原创 linux中Image、zImage、bzImage、uImage、vmlinux和vmlinux的区别

(1)vmlinux:是内核编译出来的原始的内核文件未经压缩的。是ELF格式的,但是我们一般不用。(2)Image:是 Linux 内核镜像文件,但是 Image 仅包含可执行的二进制数据。 Image 就是使用 objcopy 取消掉 vmlinux 中的一些其他信息,比如符号表什么的。但是 Image 是没有压缩过的, Image 保存在 arch/arm/boot 目录下。Image是经过objcopy处理的只包含二进制数据的内核代码,它已经不是elf格式了,但这种格式的内核镜像还没有经过压缩.o

2020-12-19 21:44:02 3045 2

原创 linux下Kconfig与.config和Makefile详解

一.linux内核中Makefile、Kconfig、.config的关系(1)三者的作用Makefile:一个文本形式的文件,编译源文件的方法。Kconfig:一个文本形式的文件,内核的配置菜单。.config:编译所依据的配置(2)三者的关系简单来说就是去饭店点菜:Kconfig是菜单,Makefile是做法,.config就是你点的菜。在运行make menuconfig后在配置界面中出现的就是Kconfig中的选项,在界面中看到的已经配置好的选项就是从.config中读取出来的,当配置完

2020-12-19 14:08:34 5295 2

转载 Linux-4.4-x86_64 内核配置选项简介

https://blog.csdn.net/lc250123/article/details/80857265?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160725584919195271628048%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=160725584919195271628048&bi

2020-12-17 21:44:59 240

原创 linux下syslogd详解

这个程序的命令行参数如下:syslogd [ -a socket ] [ -f config-file ] [ -h ] [ -l hostlist ] [ -m interval ][ -n ] [ -p socket ] [ -r ] [ -s domainlist ] [ -v ]参数说明:-a socket指定额外需要监听的 socket ,最多指定19个,可以通过修改 syslogd.c 文件中的 MAXFUNIX 宏修改这个默认值。如果你将某些进程在chroot环境下运行,那么这个选

2020-12-14 20:02:53 2473 1

原创 linux下日志系统详解

一. syslog简介syslog是一种工业标准的协议,可用来记录设备的日志。在UNIX系统,路由器、交换机等网络设备中,系统日志(System Log)记录系统中任何时间发生的大小事件。管理者可以通过查看系统记录,随时掌握系统状况。UNIX的系统日志是通过syslogd这个进程记录系统有关事件记录,也可以记录应用程序运作事件。通过适当的配置,我们还可以实现运行syslog协议的机器间通信,通过分析这些网络行为日志,藉以追踪掌握与设备和网络有关的状况。二 .syslogd和rsyslogdsyslog

2020-12-14 19:51:53 1597

转载 linux下readelf详解

http://lnmp.ailinux.net/readelf

2020-12-14 17:56:15 430

转载 linux下objdump详解

https://www.cnblogs.com/sky-heaven/p/8547950.htmlhttps://www.cnblogs.com/jrglinux/p/6942476.htmlhttps://blog.csdn.net/freeplayer/article/details/45133721

2020-12-14 17:49:12 917

转载 linux下nm详解

https://blog.csdn.net/qq_41017902/article/details/107363409

2020-12-14 17:23:14 315

转载 linux下addr2line详解

addr2line工具是一个可以将指令的地址和可执行映像转换为文件名、函数名和源代码行数的工具。这在内核执行过程中出现崩溃时,可用于快速定位出出错的位置,进而找出代码的bug。用法addr2line [-a| --addresses ] [-b bfdname | --target=bfdname] [-C | --demangle[=style]] [-e filename | --exe=filename] [-f | --function] [-s | --basename] [-i | --in

2020-12-14 16:17:42 5631 1

原创 gcc编译选项详解

-x language filename设定文件所使用的语言,使后缀名无效,对以后的多个有效.也就是根据约定C语言的后缀名称是.c的,而C++的后缀名是.C或者.cpp,例子用法:gcc -x c hello.pig-x none filename关掉上一个选项,也就是让gcc根据文件名后缀,自动识别文件类型例子用法:gcc -x c hello.pig -x none hello2.c-c只激活预处理,编译,和汇编,也就是只把程序做成obj文件例子用法:gcc -c hello.c

2020-12-14 15:37:04 1334 1

原创 linux下System.map的作用

1.符号的作用 简单的说符号就是一个函数名或者变量名。2.内核符号表 就像自己编写的C程序一样有自己的函数名与变量名一样,内核中也有变量名与函数名,所以就存在内核符号表。在编译linux内核时编译完后会存在一个叫System.map的文件,这个就是内核符号表文件。3.内核符号表的作用 当我们在使用gdb调试程序时,会输出变量名与函数名,但是在计算机运行时是不识别变量名与函数名的,是用的一个一个的地址,符号表就是用来做地址与变量或者函数名之间映射的。 由上面的分析可以知道System.map这

2020-12-13 20:56:11 731 1

原创 linux下klogd守护进程

1.klogd的介绍 klogd 是一个专门截获并记录 Linux 内核消息的守护进程。2.klogd的功能 (1).klogd的消息转发功能 klogd 将内核消息转发给 syslogd 进程,然后syslogd进程会将内核消息根据/etc/syslog.conf配置文件所设定的内容而进行分发。 (2)klogd的符号解析功能 klogd 会尝试将内核地址解析为对应的符号,默认情况下会去下面这些目录下去找寻符号表: /boot/System.map/System.map /u

2020-12-13 20:00:22 1766 2

原创 ubuntu16.04中安装anaconda和tensorflow详解

安装环境:VMware15.5+ubuntu16.04软件包:Anaconda3-4.2.0-Linux-x86_641.Anaconda安装bash Anaconda3-4.2.0-Linux-x86_64.sh回车后提示是否接受许可文件,输入yes回车,anaconda将安装在~/anaconda3目录下,然后提示是否添加环境变量,输入yes回车。在终端输入python发现依然是python自带的python版本,这是因为.bashrc的更新还没有生效,命令行输入:source ~/.bas

2020-12-11 15:19:33 171 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除