当前位置: 首页 > news >正文

Linux - Linux系统优化思路

文章目录

  • 影响Linux性能的因素
    • CPU
    • 内存
    • 磁盘I/O性能
    • 网络宽带
  • 操作系统相关资源
    • 系统安装优化
    • 内核参数优化
    • 文件系统优化
  • 应用程序软件资源
  • 系统性能分析工具
    • vmstat命令
    • iostat命令
    • sar命令
  • 系统性能分析标准
  • 小结

在这里插入图片描述


影响Linux性能的因素

CPU

CPU是操作系统稳定运行的根本,CPU的速度与性能在很大程度上决定了系统整体的性能,因此,CPU数量越多、主频越高,服务器性能也就相对越好。但事实上并非完全如此。

目前大部分CPU在同一时间内只能运行一个线程,超线程的处理器可以在同一时间运行多个线程,因此,可以利用处理器的超线程特性提高系统性能。在Linux系统下,只有运行SMP内核才能支持超线程,但是,安装的CPU数量越多,从超线程获得的性能方面的提高就越少。

另外,Linux内核会把多核处理器当作多个单独的CPU来识别,例如两个4核的CPU,在Lnux系统下会被当作8个单核CPU。但是从性能角度来讲,两个4核的CPU和8个单核的CPU并不完全等价,根据权威部门得出的测试结论,前者的整体性能要比后者低25%~30%。

内存

内存的大小也是影响Linux性能的一个重要的因素。内存太小,系统进程将被阻塞,应用也将变得缓慢,甚至失去响应;内存太大,导致资源浪费。

Linux系统采用了物理内存和虚拟内存两种方式,虚拟内存虽然可以缓解物理内存的不足,但是占用过多的虚拟内存,应用程序的性能将明显下降。

要保证应用程序的高性能运行,物理内存一定要足够大;但是过大的物理内存,会造成内存资源浪费.


磁盘I/O性能

磁盘I/O性能直接影响应用程序的性能。在一个有频繁读写的应用中,如果磁盘I/O性能得不到满足,就会导致应用停滞。 磁盘采用了很多方法来提高I/O性能,比如常见的RAID技术。

RAID(Redundant Array of Independent Disk,独立磁盘冗余阵列,简称磁盘阵列)通过将多块独立的磁盘(物理硬盘)按不同方式组合起来形成一个磁盘组(逻辑硬盘),从而提供比单个硬盘更高的I/O性能和数据冗余。

通过RAID技术组成的磁盘组,就相当于一个大硬盘。用户可以对它进行分区格式化、建立文件系统等操作,与单个物理硬盘几乎一模一样。唯一不同的是,RAID磁盘组的I/O性能比单个硬盘要高很多,同时在数据的安全性也有很大提升。

根据磁盘组合方式的不同,RAID可以分为RAID0、RAID1、RAID2、RAID3、RAID4、RAID5、RAID6、RAID7、RAID0+1、RAID10等级别。常用的RAID级别有RAID0、RAID1、RAID5、RAID0+1,这里进行简单介绍。

  • RAID0:通过把多块硬盘粘合成一个容量更大的硬盘组,提高磁盘的性能和吞吐量。这种方式成本低,要求至少两个磁盘,但是没有容错和数据修复功能,因而只能用在对数据安全性要求不高的环境中。
  • RAID1:也就是磁盘镜像,通过把一个磁盘的数据镜像到另一个磁盘上,最大限度地保证磁盘数据的可靠性和可修复性,具有很高的数据冗余能力,但磁盘利用率只有50%,因而,成本最高,多用在保存重要数据的场合。
  • RAID5:采用了磁盘分段与奇偶校验技术,从而提高了系统可靠性,RAID5读出效率很高,写入效率一般,至少需要3个磁盘,允许一个磁盘故障,而不影响数据的可用性。
  • RAID0+1:把RAID0和RAID1技术结合起来就成了RAID0+1,至少需要4个硬盘。此种方式的数据除分布在多个磁盘上外,每个磁盘都有其镜像盘,提供全冗余能力,同时允许一个磁盘故障,而不影响数据可用性,并具有快速读/写能力。

通过了解各个RAID级别的性能,可以根据应用的不同特性,选择适合自身的RAID级别,从而保证应用程序在磁盘方面达到最优性能。


网络宽带

Linux下的各种应用,一般都是基于网络的,因此网络带宽也是影响性能的一个重要因素。低速、不稳定的网络将导致网络应用程序的访问阻塞,而稳定、高速的网络带宽可以保证应用程序在网络上畅通无阻地运行。


操作系统相关资源

系统安装优化

系统优化可以从安装操作系统开始。当安装Linux系统时,磁盘的划分、交换分区内存的分配都直接影响以后系统的运行性能.

例如,磁盘分配可以遵循应用的需求:

  • 对于写操作频繁而对数据安全性要求不高的应用,可以把磁盘做成RAID0;
  • 而对于对数据安全性较高而对读写没有特别要求的应用,可以把磁盘做成RAID1;
  • 对于对读操作要求较高而对写操作无特殊要求并要保证数据安全性的应用,可以选择RAID5;
  • 对于对读写要求都很高并且对数据安全性要求也很高的应用,可以选择RAID0+1。

这样通过不同的应用需求设置不同的RAID级别,在磁盘底层对系统进行优化操作。


随着内存价格的降低和内存容量的日益增大,对虚拟内存交换分区的设定,现在已经没有了所谓虚拟内存是物理内存两倍的要求,但是交换分区的设定还是不能忽略。

根据经验,

  • 如果内存较小(物理内存小于4GB),一般设置交换分区交换分区大小为内存的2倍;
  • 如果物理内存大于8GB小于16GB,可以设置交换分区大小等于或略小于物理内存即可;
  • -如果内存大小在16GB以上,原则上可以设置交换分区为0,但并不建议这么做,因为设置一定大小的交换分区还是有一定作用的。

在这里插入图片描述

内核参数优化

系统安装完成后,优化工作并没有结束。接下来。还可以对系统内核参数进行优化。不过,内核参数的优化要和系统中部署的应用结合起来整体考虑。

如果部署的是Web应用,那么就需要根据Web应用特性进行网络参数的优化,例如,修改net.ipv4.ip_local_ port_range、net.ipv4.tcp_tw_reuse、net.core.somaxconn等网络内核参数


文件系统优化

在Linux下可选的文件系统有ext2、ext3、ReiserFS、ext4、XFS。根据不同的应用,选择不同的文件系统。


应用程序软件资源

应用程序的优化其实是整个优化工程的核心。如果一个应用程序存在bug,那么即使所有其他方面都达到了最优状态,整个应用系统还是性能低下。所以,对应用程序的优化是性能优化过程的重中之重。

在这里插入图片描述


系统性能分析工具

如何从系统上发现是某个方面或某几个方面出现问题了呢?这就需要使用Linux系统提供的几个常用性能分析工具。


vmstat命令

vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,很多Linux发行版本都默认安装了此命令工具。

利用vmstat命令可以对操作系统的内存信息、进程状态、CPU活动等进行监控,不足之处是无法对某个进程进行深入分析。

vmstat使用语法如下。

 [root@VM-24-3-centos ~]# vmstat --helpUsage:vmstat [options] [delay [count]]Options:-a, --active           active/inactive memory-f, --forks            number of forks since boot-m, --slabs            slabinfo-n, --one-header       do not redisplay header-s, --stats            event counter statistics-d, --disk             disk statistics-D, --disk-sum         summarize disk statistics-p, --partition <dev>  partition specific statistics-S, --unit <char>      define display unit-w, --wide             wide output-t, --timestamp        show timestamp-h, --help     display this help and exit-V, --version  output version information and exitFor more details see vmstat(8).
[root@VM-24-3-centos ~]#
  • -V:表示输出版本信息,是可选参数。
  • -n:表示在周期性循环输出时,输出的头部信息仅显示一次。
  • delay:表示两次输出之间的间隔时间。
  • count:表示按照“delay”指定的时间间隔统计的次数。默认为1。

例如:

vmstat 3

表示每3秒钟更新一次输出信息,循环输出,按Ctrl+c组合键停止输出。

vmstat 3 5

表示每3秒更新一次输出信息,统计5次后停止输出。


iostat命令

iostat是I/O statistics(输入/输出统计)的缩写,主要的功能是对系统的磁盘I/O操作进行监控。它的输出主要显示磁盘读写操作的统计信息,同时也会给出CPU使用情况。

同vmstat一样,iostat也不能对某个进程进行深入分析,仅对系统的整体情况进行分析

iostat一般都不随系统安装。要使用iostat工具,需要在系统上安装一个Sysstat工具包。Sysstat是一个开源软件,官方地址为http://pagesperso-orange.fr/sebastien.godard。

可以选择以源代码包或rpm包的方式安装。安装完毕,系统会多出3个命令:iostat、sar和mpstat。然后就可以直接在系统下运行iostat命令了。

iostat使用语法如下。

iostat [ -c | -d ] [ -k ] [ -t ] [ -x [ device ] ] [ interval [ count ] ][root@VM-24-3-centos ~]# iostat --help
Usage: iostat [ options ] [ <interval> [ <count> ] ]
Options are:
[ -c ] [ -d ] [ -h ] [ -k | -m ] [ -N ] [ -t ] [ -V ] [ -x ] [ -y ] [ -z ]
[ -j { ID | LABEL | PATH | UUID | ... } ]
[ [ -T ] -g <group_name> ] [ -p [ <device> [,...] | ALL ] ]
[ <device> [...] | ALL ]
[root@VM-24-3-centos ~]#

各个选项及参数含义如下。

-c:显示CPU的使用情况。

-d:显示磁盘的使用情况。

-k:每秒以千字节为单位显示数据。

-t:输出统计信息开始执行的时间。

-x device:指定要统计的磁盘设备名称,默认为所有的磁盘设备。

interval:指定两次统计间隔的时间。

count:按照“interval”指定的时间间隔统计的次数。


sar命令

sar命令很强大,是分析系统性能的重要工具之一。通过sar指令,可以全面地获取系统的CPU、运行队列、磁盘I/O、分页(交换区)、内存、CPU中断、网络等性能数据。

sar使用格式如下。

sar [options] [-o filename] [interval [count] ][root@VM-24-3-centos ~]# sar -help
Usage: sar [ options ] [ <interval> [ <count> ] ]
Options are:
[ -A ] [ -B ] [ -b ] [ -C ] [ -d ] [ -F [ MOUNT ] ] [ -H ] [ -h ] [ -p ] [ -q ] [ -R ]
[ -r ] [ -S ] [ -t ] [ -u [ ALL ] ] [ -V ] [ -v ] [ -W ] [ -w ] [ -y ]
[ -I { <int> [,...] | SUM | ALL | XALL } ] [ -P { <cpu> [,...] | ALL } ]
[ -m { <keyword> [,...] | ALL } ] [ -n { <keyword> [,...] | ALL } ]
[ -j { ID | LABEL | PATH | UUID | ... } ]
[ -f [ <filename> ] | -o [ <filename> ] | -[0-9]+ ]
[ -i <interval> ] [ -s [ <hh:mm:ss> ] ] [ -e [ <hh:mm:ss> ] ]
[root@VM-24-3-centos ~]#

各个选项及参数含义如下。

options 为命令行选项,sar命令的选项很多,下面只列出常用选项:
-A:显示系统所有资源设备(CPU、内存、磁盘)的运行状况。
-u:显示系统所有CPU在采样时间内的负载状态。
-P:显示当前系统中指定CPU的使用情况。
-d:显示系统所有硬盘设备在采样时间内的使用状况。
-r:显示系统内存在采样时间内的使用状况。
-b:显示缓冲区在采样时间内的使用情况。
-v:显示进程、文件、inode节点和锁表状态。
-n:显示网络运行状态。参数后面可跟DEV、EDEV、SOCK和FULL。DEV显示网络接口信息,EDEV显示网络错误的统计数据,SOCK显示套接字信息,FULL显示以上三个信息。它们可以单独或者一起使用。
-q:显示运行队列的大小,它与系统当时的平均负载相同。
-R:显示进程在采样时间内的活动情况。
-y:显示终端设备在采样时间内的活动情况。
-w:显示系统交换活动在采样时间内的状态。
-o filename:表示将命令结果以二进制格式存放在文件中,filename是文件名。
interval:表示采样间隔时间,是必须有的参数。
count:表示采样次数,是可选参数,默认值是1。


示例如下

要查看系统CPU的整体负载状况,每3秒统计一次,统计5次,可以使用以下命令。

sar –u 3 5

系统的CPU计数是从0开始的,如果要查看第二颗CPU的运行负载,使用以下命令。

sar –P 1 3 5

要查看系统磁盘的读写性能,使用以下命令。

sar -d 3 5

同理,要查看系统内存使用情况、网络运行状态,可以分别使用以下命令。

sar -r 5 2
sar -n DEV 5 3

系统性能分析标准

性能调优的主要目的是使系统能够有效地利用各种资源,最大地发挥应用程序和系统之间的性能融合,使应用高效、稳定地运行。

但是,衡量系统资源利用率好坏的标准没有一个严格的定义,针对不同的系统和应用也没有一个统一的说法。因此,这里提供的标准其实是一个经验值。

【判定系统资源利用状况的一般准则】

在这里插入图片描述
其中

  • %user表示CPU处在用户模式下的时间百分比;
  • %sys表示CPU处在系统模式下的时间百分比;
  • %iowait表示CPU等待输入输出完成时间的百分比;
  • swap in即si,表示虚拟内存的页导入,即从SWAP DISK交换到RAM;
  • swap out即so,表示虚拟内存的页导出,即从RAM交换到SWAP DISK。

小结

我们只说了三个常用的系统性能分析工具。其实Linux下的性能分析工具还有很多。例如,uptime可以检查CPU的平均负载,free可以查看系统内存的使用状况,ps、top可以配合监控系统的进程运行状态,netstat可以监测网络流量状况,等等

系统性能优化是个涉及面广、繁琐、长久的工作,寻找出现性能问题的根源往往是最难的部分。一旦找到出现问题的原因,性能问题也就迎刃而解。因此,解决问题的思路变得非常重要。

例如,Linux系统下的一个系统,用户反映,网站访问速度很慢,有时无法访问。

针对这个问题,

  • 第一步要做的是检测网络,可以通过ping命令检查网站的域名解析是否正常。同时,ping服务器地址的延时是否过大,等等。通过这种方式,首先排除网络可能出现的问题。如果网络没有问题
  • 接着进入第二步,对Linux系统的内存使用状况进行检查。因为网站响应速度慢,一般跟内存关联比较大,通过free、vmstat等命令判断内存资源是否紧缺。如果内存资源不存在问题,
  • 进入第三步,检查系统CPU的负载状况,可以通过sar、vmstat、top等命令的输出综合判断CPU是否存在过载问题。如果CPU没有问题,
  • 继续进入第四步,检查系统的磁盘I/O是否存在瓶颈,可以通过iostat、vmstat等命令检查磁盘的读写性能。如果磁盘读写也没有问题,Linux系统自身的性能问题基本排除。
  • 最后要做的是检查程序本身是否存在问题。通过这样的思路,层层检测,步步排查,性能问题就“无处藏身”,查找出现性能问题的环节也就变得非常简单。

在这里插入图片描述

相关文章:

Linux - Linux系统优化思路

文章目录影响Linux性能的因素CPU内存磁盘I/O性能网络宽带操作系统相关资源系统安装优化内核参数优化文件系统优化应用程序软件资源系统性能分析工具vmstat命令iostat命令sar命令系统性能分析标准小结影响Linux性能的因素 CPU CPU是操作系统稳定运行的根本&#xff0c;CPU的速…...

2.Elasticsearch入门

2.Elasticsearch入门[toc]1.Elasticsearch简介Elasticsearch是用Java开发并且是当前最流行的开源的企业级搜索引擎。 能够达到实时搜索&#xff0c;稳定&#xff0c;可靠&#xff0c;快速&#xff0c;安装使用方便。客户端支持Java、.NET&#xff08;C#&#xff09;、PHP、Pyth…...

RK3399平台开发系列讲解(应用开发篇)断言的使用

🚀返回专栏总目录 文章目录 一、什么是断言二、静态断言三、运行时断言沉淀、分享、成长,让自己和他人都能有所收获!😄 📢断言为我们提供了一种可以静态或动态地检查程序在目标平台上整体状态的能力,与它相关的接口由头文件 assert.h 提供。 一、什么是断言 在编程中…...

云原生系列之使用prometheus监控nginx

前言 大家好&#xff0c;又见面了&#xff0c;我是沐风晓月&#xff0c;本文主要讲解云原生系列之使用prometheus监控nginx 文章收录到 csdn 我是沐风晓月的博客【prometheus监控系列】专栏&#xff0c;此专栏是沐风晓月对云原生prometheus的的总结&#xff0c;希望能够加深自…...

第六届省赛——8移动距离(总结规律)

题目&#xff1a;X星球居民小区的楼房全是一样的&#xff0c;并且按矩阵样式排列。其楼房的编号为1,2,3...当排满一行时&#xff0c;从下一行相邻的楼往反方向排号。比如&#xff1a;当小区排号宽度为6时&#xff0c;开始情形如下&#xff1a;1 2 3 4 5 612 11 10 9 8 713 14 1…...

C++vector 简单实现

一。概述 vector是我们经常用的一个容器&#xff0c;其本质是一个线性数组。通过对动态内存的管理&#xff0c;增删改查数据&#xff0c;达到方便使用的目的。 作为一个线性表&#xff0c;控制元素个数&#xff0c;容量&#xff0c;开始位置的指针分别是&#xff1a; start …...

通用缓存存储设计实践

目录介绍 01.整体概述说明 1.1 项目背景介绍1.2 遇到问题记录1.3 基础概念介绍1.4 设计目标1.5 产生收益分析 02.市面存储方案 2.1 缓存存储有哪些2.2 缓存策略有哪些2.3 常见存储方案2.4 市面存储方案说明2.5 存储方案的不足 03.存储方案原理 3.1 Sp存储原理分析3.2 MMKV存储…...

sheng的学习笔记Eureka Ribbon

Eureka-注册中心Eureka简介官方网址&#xff1a;https://spring.io/projects/spring-cloud-netflixEureka介绍Spring Cloud 封装了 Netflix 公司开发的 Eureka 模块来实现服务注册和发现(请对比Zookeeper)。Zooleeper nacos.Eureka 采用了 C-S 的设计架构。Eureka Server 作为服…...

零代码工具我推荐Oracle APEX

云原生时代零代码工具我推荐Oracle APEX 国内的低码开发平台我也看了很多&#xff0c;感觉还是不太适合我这个被WEB抛弃的老炮。自从看了Oracle APEX就不打算看其它的了。太强大了&#xff0c;WEB服务器都省了&#xff0c;直接数据库到WEB页面。功能很强大&#xff0c;震撼到我…...

InstructGPT方法简读

InstructGPT方法简读 引言 仅仅通过增大模型规模和数据规模来训练更大的模型并不能使得大模型更好地理解用户意图。由于数据的噪声极大&#xff0c;并且现在的大多数大型语言模型均为基于深度学习的“黑箱模型”&#xff0c;几乎不具有可解释性和可控性&#xff0c;因此&…...

SpringCloud-5_模块集群化

避免一台Server挂掉&#xff0c;影响整个服务&#xff0c;搭建server集群创建e-commerce-eureka-server-9002微服务模块【作为注册中心】创建步骤参考e-commerce-eureka-server-9001修改pom.xml,加入依赖同9001创建resources/application.yml9002的ymlserver: # 修改端口号por…...

AQS底层源码深度剖析-BlockingQueue

目录 AQS底层源码深度剖析-BlockingQueue BlockingQueue定义 队列类型 队列数据结构 ArrayBlockingQueue LinkedBlockingQueue DelayQueue BlockingQueue API 添加元素 检索(取出)元素 BlockingQueue应用队列总览图 AQS底层源码深度剖析-BlockingQueue【重点中的重…...

Kotlin协程:Flow的异常处理

示例代码如下&#xff1a;launch(Dispatchers.Main) {// 第一部分flow {emit(1)throw NullPointerException("e")}.catch {Log.d("liduo", "onCreate1: $it")}.collect {Log.d("liudo", "onCreate2: $it")}// 第二部分flow …...

qt下ffmpeg录制mp4经验分享,支持音视频(h264、h265,AAC,G711 aLaw, G711muLaw)

前言 MP4&#xff0c;是最常见的国际通用格式&#xff0c;在常见的播放软件中都可以使用和播放&#xff0c;磁盘空间占地小&#xff0c;画质一般清晰&#xff0c;它本身是支持h264、AAC的编码格式&#xff0c;对于其他编码的话&#xff0c;需要进行额外处理。本文提供了ffmpeg录…...

C#读取Excel解析入门-1仅围绕三个主要的为阵地,进行重点解析,就是最理性的应对上法所在

业务中也是同样的功能点实现。只是多扩展了很多代码&#xff0c;构成了项目的其他部分&#xff0c;枝干所在。但是有用的枝干&#xff0c;仅仅不超过三个主要的&#xff01;所以您仅仅围绕三个主要的为阵地&#xff0c;进行重点解析&#xff0c;就是最理性的应对上法所在了 str…...

一起Talk Android吧(第五百一十八回:在Android中使用MQTT通信五)

文章目录 知识回顾问题描述解决过程经验分享各位看官们大家好,这一回中咱们说的例子是" 在Android中使用MQTT通信五",本章回内容与前后章节内容无关联。闲话休提,言归正转,让我们一起Talk Android吧! 知识回顾 我们在前面章回中介绍了如何使用MQTT通信,包含它…...

100种思维模型之混沌与秩序思维模型-027

人类崇尚秩序与连续性&#xff0c;我们习惯于我们的日常世界&#xff0c;它以线性方式运作&#xff0c;没有不连续或突跳。 为此&#xff0c;我们学会了期望各种过程以连续方式运行&#xff0c;我们的内心为了让我们更有安全感&#xff0c;把很多事物的结果归于秩序&#xff0c…...

Java开发 - Redis初体验

前言 es我们已经在前文中有所了解&#xff0c;和es有相似功能的是Redis&#xff0c;他们都不是纯粹的数据库。两者使用场景也是存在一定的差异的&#xff0c;本文目的并不重点说明他们之间的差异&#xff0c;但会简要说明&#xff0c;重点还是在对Redis的了解和学习上。学完本…...

Python - 使用 pymysql 操作 MySQL 详解

目录创建连接 pymsql.connect() 方法的可传参数连接对象 conn pymsql.connect() 方法游标对象 cursor() 方法使用示例创建数据库表插入数据操作数据查询操作数据更新操作数据删除操作SQL中使用变量封装使用简单使用&#xff1a; import pymysqldb pymysql.connect(host,user…...

机器学习-卷积神经网络CNN中的单通道和多通道图片差异

背景 最近在使用CNN的场景中&#xff0c;既有单通道的图片输入需求&#xff0c;也有多通道的图片输入需求&#xff0c;因此又整理回顾了一下单通道或者多通道卷积的差别&#xff0c;这里记录一下探索过程。 结论 直接给出结论&#xff0c;单通道图片和多通道图片在经历了第一…...

考研复试——计算机组成原理

文章目录计算机组成原理1. 计算机系统由哪两部分组成&#xff1f;计算机系统性能取决于什么&#xff1f;2. 冯诺依曼机的主要特点&#xff1f;3. 主存储器由什么组成&#xff0c;各部分有什么作用&#xff1f;4. 什么是存储单元、存储字、存储字长、存储体&#xff1f;5. 计算机…...

硬件设计 之摄像头分类(IR摄像头、mono摄像头、RGB摄像头、RGB-D摄像头、鱼眼摄像头)

总结一下在机器人上常用的几种摄像头&#xff0c;最近在组装机器人时&#xff0c;傻傻分不清摄像头的种类。由于本人知识有限&#xff0c;以下资料都是在网上搜索而来&#xff0c;按照摄像头的分类整理一下&#xff0c;供大家参考&#xff1a; 1.IR摄像头&#xff1a; IRinfr…...

PTA:C课程设计(2)

山东大学&#xff08;威海&#xff09;2022级大一下C习题集&#xff08;2&#xff09;2-5-1 字符定位函数&#xff08;程序填空题&#xff09;2-5-2 判断回文&#xff08;程序填空题&#xff09;2-6-1 数字金字塔(函数)2-6-2 使用函数求最大公约数(函数)2-6-3 使用函数求余弦函…...

第四章:面向对象编程

第四章&#xff1a;面向对象编程 4.1&#xff1a;面向过程与面向对象 面向过程(POP)与面向对象(OOP) 二者都是一种思想&#xff0c;面向对象是相对于面向过程而言的。面向过程&#xff0c;强调的是功能行为&#xff0c;以函数为最小单位&#xff0c;考虑怎么做。面向对象&…...

Linux 安装npm yarn pnpm 命令

下载安装包 node 下载地址解压压缩包 tar -Jxf node-v19.7.0-linux-x64.tar.xz -C /root/app echo "export PATH$PATH:/app/node-v16.9.0-linux-x64" >> /etc/profile source /etc/profile ln -sf /app/node-v16.9.0-linux-x64/bin/npm /usr/local/bin/ ln -…...

linux SPI驱动代码追踪

一、Linux SPI 框架概述 linux系统下的spi驱动程序从逻辑上可以分为3个部分: SPI Core&#xff1a;SPI Core 是 Linux 内核用来维护和管理 spi 的核心部分&#xff0c;SPI Core 提供操作接口&#xff0c;允许一个 spi master&#xff0c;spi driver 和 spi device 在 SPI Cor…...

Ls-dyna材料的相关学习笔记

Elastic Linear elastic materials -Isotropic:各向同性材料 -orthotropic 正交各向异性的 -anistropic 各向异性的...

Arrays方法(copyOfRange,fill)

Arrays方法 1、Arrays.copyOfRange Arrays.copyOfRange的使用方法 功能&#xff1a; 将数组拷贝至另外一个数组 参数&#xff1a; original&#xff1a;第一个参数为要拷贝的数组对象 from&#xff1a;第二个参数为拷贝的开始位置&#xff08;包含&#xff09; to&#xff1a;…...

AcWing - 蓝桥杯集训每日一题(DAY 1——DAY 5)

文章目录一、AcWing 3956. 截断数组&#xff08;中等&#xff09;1. 实现思路2. 实现代码二、AcWing 3729. 改变数组元素&#xff08;中等&#xff09;1. 实现思路2. 实现代码三、AcWing 1460. 我在哪&#xff1f;&#xff08;简单&#xff09;1. 实现思路2. 实现代码四、AcWin…...

RHCSA-文件的其他命令(3.7)

目录 文件的其他命令&#xff1a; 文本内容统计wc 移动和复制&#xff08;cp&#xff09; 移动 查找文件的路径 压缩和解压缩 .tar&#xff08;归档命令&#xff09; shell-命令解释器 linux中的特殊字符 查看系统上的别名&#xff1a;alias 历史命令&#xff08;his…...

购物网站开发 webstorm/网页设计与网站开发

之前我们讲解了Git在本地版本库中的基本操作&#xff0c;这些操作和Linux系统中的操作基本相同。之后&#xff0c;在上一篇中&#xff0c;我们记述了如何获得SSH密钥&#xff0c;以及如何与Github连接的问题。在这些准备工作做好了之后&#xff0c;我们尝试使用Github。 本文使…...

做视频网站收入/推广引流吸引人的标题

g的编译选项介绍&#xff1a; -WI的理解&#xff0c;gcc的-WI,xxx选项似乎是在 gcc 中使用 ld 链接选项时候的编译器选项 -L: “链接” 的时候&#xff0c;去找的链接库的目录 - rpath&#xff08;或 - R &#xff0c;这似乎是一个内容&#xff09;&#xff0c;意思是“运行…...

南通动态网站建设/2023近期舆情热点事件

新职业层出不穷&#xff0c;老职业越老越吃香。人才市场的竞争永远激烈&#xff0c;其间有多少是最受职场人士关注、三千宠爱集一身的职业?未来几年的金牌职业有哪些?我们的金牌职业、俗称“金饭碗”具有以下特征&#xff1a;含金量高、收入多、发展前景广阔、相对稳定、身上…...

深圳做网站公司有哪些/seo网站优化推广教程

转自&#xff1a;https://www.cnblogs.com/whiteMu/p/5378747.html 一、display:box; 在元素上设置该属性&#xff0c;可使其子代排列在同一水平上&#xff0c;类似display:inline-block;。 二、可在其子代设置如下属性 前提&#xff1a;使用如下属性&#xff0c;必须在父代设置…...

专业的团队网站建设/中国网站建设公司

目录 一&#xff0c;写在前面 二&#xff0c;链表经典例题 1&#xff0c;反转一个单链表 2&#xff0c;给定一个带有头结点 head 的非空单链表&#xff0c;返回链表的中间结点 3&#xff0c;输入一个链表&#xff0c;输出该链表中倒数第k个结点 4&#xff0c;删除链表中的…...

巴城镇建设网站/谷歌搜索引擎下载安装

小小喜欢看的动画片我也跟着看起来&#xff0c;发现了一个事实。 小小看的动画片都是国外的&#xff0c;比如《爱探险的朵拉》&#xff0c;《米奇妙妙屋》...但是大致宗旨只有两个&#xff0c;值得我们成年人学习&#xff1a; 1.所有的事情快要成功的时候&#xff0c;总是有个“…...