Linux 性能优化实战

Linux 性能优化实战原文链接:https://time.geekbang.org/column/intro/100020901?tab=catalog

  • 33 | 关于 Linux 网络,你必须知道这些(上)
    • 设计高并发架构有哪些策略?
    • 如何理解云计算?
    • 如何理解TCP/IP 四层模型?
    • 如何理解网络接口层MAC寻址?
    • 如何理解网络接口层错误侦测?
    • 如何理解网络包的封装格式?
    • 如何理解MTU?
    • 如何理解Linux 内核中的网络栈?
    • 如何理解应用程序通过系统调用和套接字进行交互?
    • 如何理解Linux网络收发数据流程?
  • 38 | 案例篇:怎么使用 tcpdump 和 Wireshark 分析网络流量?

33 | 关于 Linux 网络,你必须知道这些(上)

设计高并发架构有哪些策略?

1,负载均衡:Nginx,HAProxy,LVS。

2,微服务:应用程序拆分为小型独立服务。

小型独立服务的特点:

  • 实现应用程序特定业务,职责单一。
  • 开发、部署和扩展能快速迭代。
  • 通过HTTP,REST或消息队列协同实现应用程序功能。 (需要设计高效可靠的服务间通信。)
  • 实现技术多样,不同服务可以使用不同的技术栈。
  • 有独立的数据库和数据模型,去中心化。(需要考虑数据一致性的问题。)
  • 不同服务之间故障隔离,提高系统整体稳定性。(需要管理,监控和运维多个独立服务。)
  • 根据需求水平缩扩容,充分利用资源。
  • 自动化监控、运维。
  • Docker,Kubernetes。

3,异步编程:RabbitMQ,Kafka。

4,服务无状态设计:

  • 请求之间不相互依赖。
  • 请求和服务数据不相互依赖。

5,缓存:Redis,Memcached。

6,服务内部优化:数据结构和算法的优化,提高请求处理速度。

7,数据库优化:

  • 读写分离。
  • 使用NoSQL数据库。
  • 数据库分片。
  • 索引优化。

8,限流和熔断:必要时进行服务降级,保证核心功能的稳定性。

9,API网关:

  • 客户端 — API网关 — 服务端。
  • 简化客户端逻辑,为客户端提供统一的交互接口。
  • 屏蔽后端服务的复杂性和细节。

10,CDN:

  • 在多个地理位置的服务器上缓存。用户访问时,选择最接近的服务器向用户提供服务。

11, 数据复制和同步:
多数据中心之间复制数据,提高数据可用性和访问速度。

如何理解云计算?

通过互联网提供计算资源与服务(包括硬件和软件)。

IaaS:基础设施即服务。

  • 提供虚拟化计算资源,用户租用这些资源,无需购买和维护硬件。
  • CPU,内存,磁盘,网络等。
  • 例如:Google Compute Engine,Amazon EC2,Microsoft Azure VMs。

PaaS:平台即服务。

  • 提供除IaaS之外的软件应用平台。
  • 为开发者提供完整的开发和部署环境,能在云端构建,测试,部署,管理和更新应用程序。
  • 开发工具集成:提供集成开发环境和环境,代码编辑器,版本控制,编译服务,测试服务等。
  • 中间件服务:数据库,消息队列,缓存,邮件服务等,开发者无需单独安装和管理。
  • 编程语言和框架的支持:支持多种编程语言和框架。
  • 自动化管理:自动化部署、扩展、负载均衡、日志管理、安全更新等。
  • 服务集成:容易与其他服务集成,如连接不同的API、数据服务或企业服务。
  • 开发者可以使用PaaS提供的服务快速开发新应用程序。
  • 提供与生产环境一直的测试平台。
  • 部署过程自动化和标准化,快速迭代应用。
  • 提供完整的工具用于创建、测试和管理API。
  • 例如:Google App Engine,Heroku,Microsoft Azure App Serveices。

SaaS:软件即服务。

  • 通过互联网提供应用程序作为服务,用户直接通过浏览器或API直接访问服务,无需任何维护。
  • 服务商负责软件的维护、操作和更新。
  • 例如:Google Workspace,Microsoft 365。

如何理解TCP/IP 四层模型?

应用层:向用户提供一组应用程序接口,屏蔽底层复杂的网络协议栈。应用程序开发者只关注业务逻辑实现,而不需要处理网络通信的细节。例如:HTTP,FTP,DNS等。

传输层:应用程序(网络层IP + 传输层端口唯一标识)之间的通信。例如:TCP,UDP等。

网络层:主机(网络层IP唯一标识)之间的通信。例如:IP等。

网络接口层:负责网络帧在物理链路上的传输。
TUPIAN

如何理解网络接口层MAC寻址?

如何理解网络接口层错误侦测?

如何理解网络包的封装格式?

TUPIAN

如何理解MTU?

数据链路层限制的最大IP包传输大小。
IP头 + TCP头 + 应用数据 > MTU,则在网络层进行分片。

第一个分片:IP头部 + TCP头部 + 应用数据。
其他分片:IP头部 + 应用数据。

举例:MTU为1500字节。
2000字节IP数据包:IP头(20字节) +TCP头(20字节) +应用数据(1960字节)。
分片1:IP头(20字节) +TCP头(20字节) +应用数据(1460字节)。
分片2:IP头(20字节) +应用数据(500字节)。

如何理解Linux 内核中的网络栈?

TUPIAN

如何理解应用程序通过系统调用和套接字进行交互?

如何理解Linux网络收发数据流程?

接收流程:

  • 网络帧到达网卡。
  • 网卡通过DMA将数据帧放在收包队列。
  • 硬中断通知中断处理程序收到了网络帧,为网络帧在内核分配数据结构 sk_buff 并拷贝到 sk_buff缓冲区。
  • 硬中断结束,通知软中断。
  • 软中断从 sk_buff 缓冲区取出网络帧,按照网络协议解析,将应用数据缓存在socket中。
  • 应用程序使用socket接口读取数据。

TUPIAN

38 | 案例篇:怎么使用 tcpdump 和 Wireshark 分析网络流量?

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

洛谷P3269 [JLOI2016] 字符串覆盖

题目描述 字符串A有N个子串B1,B2,...,Bn。如果将这n个子串分别放在恰好一个它在A中出现的位置上(子串之间可以重叠)这样A中的若干字符就被这N个子串覆盖了。问A中能被覆盖字符个数的最小值和最大值。 输入格式 第一行包含一个正整数T,表示…

Selenium入门之环境搭建

搭建 Selenium 环境主要包括以下几个步骤: 安装 Python 和相关包安装 WebDriver编写和运行 Selenium 脚本 1. 安装 Python 和相关包 首先确保你已经安装了 Python。如果没有安装,可以从 Python 官方网站下载并安装。 然后,使用 pip 安装 …

2024年大数据、区块链与物联网国际会议(ICBDBLT 2024)

2024 International Conference on Big Data, Blockchain, and Internet of Things 【1】大会信息 会议简称:ICBDBLT 2024 大会地点:中国青岛 审稿通知:投稿后2-3日内通知 会议官网:www.icbdblt.com 【2】会议简介 即将召开的…

DDoS攻击:企业与个人都应了解的基本知识

DDoS攻击,全称分布式拒绝服务攻击(Distributed Denial of Service attack),是一种常见的网络安全攻击方式。以下是对DDoS攻击的详细解释: DDoS攻击是指攻击者利用大量被控制的计算机或设备(通常称为“僵尸网络”或“傀…

签到的二维码怎么制作?快速实现制作二维码签到的方法

现在很多活动会采用二维码的方式来做登记、报名、签到等,通过二维码可以快速获取用户信息,并且对于用户填写内容也提升了便利性,而且还能够节约成本,通过后台就可以查看用户登记的数据,方便后期的分析和信息管理。 想…

四、Nginx配置文件-负载均衡

目录 一、负载均衡的作用 二、负载均衡状态 三、负载均衡的指令 1、upstream 指令 2、server指令 四、负载均衡几种方式 1、轮询(Round Robin 常用) 2、IP Hash (较少) 3、最少连接数(Least Connections 较少&…

Java Swing库学习

Java Swing 是一个用于创建图形用户界面(GUI)的库。它是Java基础类库的一部分,提供了丰富的组件和布局管理器,能够帮助开发者创建功能强大、跨平台的桌面应用程序。 学习Swing库的步骤 1. 环境配置 确保你已经安装了JDK&#x…

策略模式(设计模式)

使用策略模式重构 if/else 策略设计模式是一种允许在运行时选择算法的行为。这种模式 ● 定义了一系列算法 ● 封装每种算法 ● 使算法在该系列内可互换。 下面是策略设计模式的架构,客户端将在其中与上下文进行通信。上下文将包含对策略对象的引用,这反…

空白服务器安装系统

一、准备工作 确定服务器的硬件配置,包括处理器、内存、硬盘等信息。选择合适的操作系统镜像文件,可以从官方网站或者第三方网站下载。 二、制作启动盘或镜像 如果服务器支持从光盘启动,可以使用光盘制作软件(如UltraISO&#…

考研计组chap3存储系统

目录 一、存储器的基本概念 80 1.按照层次结构 2.按照各种分类 (41)存储介质 (2)存取方式 (3)内存是否可更改 (4)信息的可保存性 (5)读出之后data是否…

SwaggerSpy:一款针对SwaggerHub的自动化OSINT安全工具

关于SwaggerSpy SwaggerSpy是一款针对SwaggerHub的自动化公开资源情报(OSINT)安全工具,该工具专为网络安全研究人员设计,旨在简化广大红队研究人员从SwaggerHub上收集已归档API信息的过程,而这些OSINT信息可以为安全人…

【全网瞩目】最强文生图模型,Stable Diffusion 3技术报告解禁

12号,终于在Hugging Face上出现了 Stable Diffusion 3 Medium。没错,正如他所承诺的,最强文生图模型真的开源了。而且此次开源不仅是以SD2的比较下性能得到了更好的升级,同时也向我们展示了最前沿的DiT技术——MMDiT。 是什么让 S…

【乐吾乐2D可视化组态编辑器】导出HTML,下载离线部署包

乐吾乐2D可视化组态编辑器地址:https://2d.le5le.com/ 使用步骤 1. 从“文件”菜单导出HTML 导出为 HTML 需要一定的开发能力,后续不再维护,即将下线,推荐使用 下载离线部署包(html) 2. 解压 3. 下载后端…

shell脚本的for循环

循环: 循环是一种重复执行代码的结构。只要满足循环的条件,会一直执行这个代码。 循环条件:在一定范围之内,按照指定的次数来执行循环。 循环体:在指定的次数内,执行的命令序列。只要条件满足&#xff0…

阿里云运维第一步(监控):开箱即用的监控

作者:仲阳 这是云的时代,现在云计算已经在各行各业广泛的应用。但是上云对于大多数客户来说,依然有很大的学习成本,如下图仅是阿里云都有几百款产品,怎么选择?怎么用?对于客户来说都是问题。“…

手撕设计模式——计划生育之单例模式

1.业务需求 ​ 大家好,我是菠菜啊。80、90后还记得计划生育这个国策吗?估计同龄的小伙伴们,小时候常常被”只生一个好“”少生、优生“等宣传标语洗脑,如今国家已经放开并鼓励生育了。话说回来,现实生活中有计划生育&…

2024网络安全学习路线 非常详细 推荐学习

关键词:网络安全入门、渗透测试学习、零基础学安全、网络安全学习路线 首先咱们聊聊,学习网络安全方向通常会有哪些问题 1、打基础时间太长 学基础花费很长时间,光语言都有几门,有些人会倒在学习 linux 系统及命令的路上&#…

嵌套查询(二)-谓词EXISTS实现嵌套查询

一、EXISTS谓词 1、作用:用于判断一个子查询的结果是否为空 2、使用语法: 【NOT】EXISTS(子查询) 语义:如果子查询的查询结果不为空,则EXISTS为真,否则为假 二、举例 1、举例1&#xff1a…

【数据结构 |集合框架、泛型】初始集合框架、时间(空间)复杂度、简单认识泛型

✨✨谢谢大家捧场,祝屏幕前的小伙伴们每天都有好运相伴左右,一定要天天开心哦!✨✨ 🎈🎈作者主页: 🎈丠丠64-CSDN博客🎈 ✨✨ 帅哥美女们,我们共同加油!一起…

学习AI 机器学习,深度学习需要用到的python库

学习人工智能(AI)时,Python是最流行的编程语言之一。以下是一些常用的Python库和工具,它们可以帮助你入门并深入学习AI和机器学习: 数据处理和分析库 NumPy: 用于处理大型多维数组和矩阵运算,并提供数学函…