首页 > 系统相关 >linux操作系统内核简介

linux操作系统内核简介

时间:2023-06-07 12:22:55浏览次数:65  
标签:操作系统 中断 硬件 12s% 内核 linux 上下文 proc

为啥要对服务端进行监控分析?

jmeter监控,如果tps低,响应时间长,能不能发现瓶颈在哪?不能

压力断的重要性:看性能衰减

1.linux操作系统内核简介

linux内核作用:

  • 与计算机硬件进行交互,实现对硬件部件的编程控制和接口操作,调度对硬件资源的访问
  • 为计算机上的用户程序提供一个高级的执行环境和对硬件的虚拟接口

查看内核版本:uname -r

4.18.0-147.5.1.el8_1.x86_64

4.18.0 Linux内核版本由3个数字组成:r.x.y r:目前发布的Kernel主版本x:偶数是稳定版本,奇数是开发中的版本 y:错误修补次数 

操作系统内核体系结构图:

进程有用户态、内核态,用户态调用系统接口,陷入内核态

/proc 

proc 是 Processes(进程) 的缩写,/proc 实际上是 Linux 的一个虚拟文件系统,用于内核空间与用户空间之间的通信

查看信息:cat /proc/cpuinfo 

1.2 内核功能

系统调用管理:操作系统功能调用的统一入口(创建进程,读取文件)

查看系统调用:strace

进程管理:对运行中的程序进行生命周期管理

内存管理:对运行中的程序使用的内存进行管理(只有内核才可以直接访问物理内存)

文件管理:对运行中的程序使用的文件进行管理(Linux 里一切皆文件)

设备管理:对输入输出设备进行管理(字符设备:比如鼠标,块设备:比如硬盘)

网络通信:

网络协议模型:业界标准的 TCP/IP 模型:四层模型

TCP/IP模型:

应用层:常见协议:http

传输层:常见协议:tcp

网络层:常见协议:ip

网络接口层:负责网络包在物理网络中的传输

客户端软件想要基于网络发送一条消息给客户端:

 

 1.3 相关术语

1.3.1 中断:interrupt

中断是系统用来响应硬件设备请求的一种机制

分类:硬件中断和软中断

硬件中断:用来快速处理硬件请求(会打断 CPU 正在执行的任务),特点是快速执行

软中断:由内核触发,比如用来异步处理硬件中断未完成的工作

各种类型软中断在不同 CPU 上的累积运行次数

软中断查看命令:cat /proc/softirqs

上面命令如果乱序:cat /proc/softirqs |awk '{printf "%12s%12s%12s\n",$1,$2,$3}'

改进:cat /proc/softirqs |awk 'NR == 1{printf "%12s%12s%12s\n"," ",$1,$2};NR>1{printf "%12s%12s%12s\n",$1,$2,$3}'

 

 常见性能问题:

  • 压测产生大量网络数据
  • 接收数据导致HI高

原因:接收数据能力弱

1.3.2 上下文切换:context switch

上下文:cup上下文,是cpu在运行任务前必须的依赖环境

cpu寄存器:是cpu内置的容量小,但熟读极快的内存(存储运算器里的临时数据和指令)

程序计数器:存储cpu正在执行的指令位置、或者即将执行的下一条指令位置

上下文切换:先把前一个任务的 CPU 上下文保存起来,然后加载新任务的上下文到这些寄存器和程序计数器,最后再跳转到程序计数器所指的新位置,运行新任务

常见CS:

  • 中断上下文切换
  • 进程上下文切换
  • 线程上下文切换(比进程间切换消耗资源少)

常见性能问题:线程池设置过大导致cs高

 

标签:操作系统,中断,硬件,12s%,内核,linux,上下文,proc
From: https://www.cnblogs.com/lgs-tech/p/17462988.html

相关文章

  • Linux 字符编码
    1、查看字符编码和语言使用locale命令,语言是en_US(英语_美式),编码是UTF-8 2、修改字符编码和语言对应配置文件centos7修改文件/etc/locale.confcentos6修改文件/etc/sysconfig/i18n2.1先看一下修改前的 2.2然后,如改成中文编码GBK编码:LANG="en_US.UTF-8"改......
  • linux优化
    第18章Linux操作系统优化目录第18章Linux操作系统优化1.更改Yum源和添加epel源2.关闭SELinux3.关闭防火墙(Firewalld)4.关闭NetworkManager5.同步系统时间6.加大文件描述7.别名及环境变量优化8.内核优化9.配置SSH远程管理服务10.修改主机名和IP脚本11.安装常用软件12.......
  • 在linux上用命令行解压
    Linux上用命令行解压压缩文件的命令是"tar"命令,具体如下:解压.tar文件:命令为tar-xvffilename.tar,其中,x表示解压,v表示打印详细信息到屏幕上,f表示指定被解压的文件。解压.tar.gz文件:命令为tar-xzvffilename.tar.gz,其中,x表示解压,z表示使用gzip压缩算法,v表示打印详......
  • 盘点最好的Linux网络监控工具!
    想要成为一名优秀的Linux运维工程师,不仅要具备专业的技能,还需要熟练掌握各种各样的工具,它是我们提高工作效率不可或缺的好助手,本文为大家盘点最好的Linux网络监控工具,快来了解一下吧。1、OpenNMS自从1990年以来,OpenNMS就已经存在了,当时它已称为面向企业和大型网络的面......
  • 【zsh使用技巧】Linux shell美化,ohmyzsh安装+Xshell美化,体验Mac命令行
    解决oh-my-zsh主题乱码问题解决RockyLinux下ohmyzsh按Tab键自动补全命令时重复字符且无法删除问题Solve:RemnantcharacterswhentabcompletingIseeduplicatetypedcharactersafterIcompleteacommand愿你美化半生,归来仍是默认一、背景厌倦了Linux单调的命令行,......
  • linux ping网络不可达
    一、先使用  ifconfig  命令查看虚拟机是否能上网对应显示如下,代表可以上网 二、查看虚拟机设置,网络适配器配置NAT和桥接模式两种   三、再次ping,显示成功 ......
  • Linux系统一般用来干嘛
    Linux系统是一种开源的操作系统,广泛应用于服务器、嵌入式设备、超级计算机等领域。它具有高度的稳定性、安全性和灵活性,可以用来进行各种各样的任务,例如:1、服务器操作系统Linux系统在服务器领域应用广泛,可以用来搭建Web服务器、数据库服务器、邮件服务器等。2、开发环境Linux......
  • linux和windows爬虫有什么区别
    Linux和Windows作为操作系统对于爬虫的差异不是特别大,因为两个操作系统同时都可以用于编写运行爬虫的程序。主要的差异可能源于开发工具和环境的差异。Linux上通常使用命令行工具来编写和运行爬虫程序,而Windows则更加倾向于使用图形化界面的编程软件。这并不是说在Windows上不能......
  • linux中实现提取碱基序列的互补序列
     001、[root@PC1test03]#lsa.fa[root@PC1test03]#cata.fa##测试序列ATCGATGC[root@PC1test03]#cata.fa|tr"ATCG""TAGC"##提取碱基序列的互补序列TAGCTACG ......
  • (转)linux ethtool 命令详解
    原文:https://blog.csdn.net/weixin_43214644/article/details/1264712291概述ethtool是用于查询及设置网卡参数的命令。2命令详解2.1命令格式(1)语法ethtool[-a|-c|-g|-i|-d|-k|-r|-S|]ethXethtool[-A]ethX[autonegon|off][rxon|off][txon|of......