系统运维网络知识汇总

一、系统运维中网络方面的规划与思考

系统运维建立在网络的基础之上,如果没有一个相对合理的网络架构,恐怕系统运维做起来也不是那么的顺手。一个公司基本上都会把网络和服务器独立开来,划分不同的区域摆放设备,很多时候都是物理隔离。服务器接入交换机大多是经过配线架连接起来和有的服务器机柜头柜安装网络交换机,是相对比较常见的两种方式。

大多数IT机房当初建立的时候,从设备混乱摆放到区域明确划分存放,又从区域功能明确到后来的后来的功能区域模糊,都反映了一个问题:计划赶不上变化。十年前还相当前卫的规划,到现在已经跟不上时代,这并不是谁的错,还是要求我们去适应去改变,业务引领变革,基础架构也需要做相应调整,所谓唯一不变的就是变。

我心中企业目前现阶段相对比较理想的架构这样的,如图所示:

图片

这样一个传统企业典型的网络结构,保证每个核心节点都是双链路,链路异常自动切换,各种切换在这种典型的网络结构上都或多或少的简单或复杂,不尽相同。网络方面关注几个点:稳定,安全,自动化。业务系统组件也尽量避免单点问题。

这样后端业务系统在连接网络层面稳定性就有了保障,在主机系统层面,尽量避免单独问题,消除性能瓶颈,异常能够自动告警自动修复得相对比较完美,当然这一切还要立足于预算。

二、系统运维中网络方面操作梳理

在系统运维中,经常涉及的网络方面的操作,一般由以下几个方面组成。

1.设备上线,物理连线设置

很多运维人员要从事从刚开始立项到项目上线再到后期运维的一条龙服务,每个环节都要自己亲自动手,这是好事也是坏事,好的是自己的环境一般会非常的熟悉,不好的是事必躬亲,不出活,业绩不明显。插个线都要自己来,你恐怕也没太多精力干其他的,这就是个矛盾体,自己把握就好。

2.网络逻辑配置调整

这一块内容就涉及到了具体的操作,你可以手工一步一步操作,也可以借助高大上的工具批量完成,这个要看企业的IT建设的能力。一个掩码一个点错误都会导致网络连接异常。如果自己有开发能力也可以使用脚本或语言写成成型的东西,平时多多积累,使用的时候就会方便很多。

具体内容涉及:

1) 配置ip,别名,设置个端口监听,绑定个网卡,设置个路由

2) 划分个vlan,配置个trunk

3) 测试个端口,配置个监控

具体的操作过程在此不做过多的介绍,比如做个网卡绑定啊,测试个端口啊,这些操作网上有大批的文档可以查阅,本节内容就是描述在日常的Linux系统运维方面所涉及网络方面的操作,有一个整体的印象。

3.性能分析与优化

该部分内容相对不太容易操作,不是随随便都可以依葫芦画瓢就能完成,性能稳定分析和定位相对困难一些,很多场景都需要结合多个方面进行统一分析。这个需要一些工作经验的结论和沉淀,选择合适的工具,多方面配合往往会有比较好的效果。

工欲善其事,必先利其器:

图片

熟练掌握该图上面的各种工具,基本上可以解决性能分析99%的工作,那剩下的1%的不是bug就是天灾。这里其实在说笑了,但这也说明一个好的工具有多么的重要。剩余就是要仔细认真,再好的工具,不会用也不行,态度是第一位的。

三、系统运维过程中需要掌握的利器

在上文中分享了一个图,该图涵盖的面比较广,本节内容主要针对网络方面进行一些梳理,分享一下在工作当中经常使用的利器。

首先我们来分享一张目前Linux 系统性能查看调优工具图:

图片

这张图片基本上涵盖了Linux系统各个方面的性能工具,可以说相当的全面,下面我们看一下有关网络方面我们常用的命令或工具有哪些,这样有助于大家方便查看和使用。

图片

以上工具基本上在日常工作当中经常会使用到,每个工具都有其侧重点,这里列举的只是大量工具中的一小部分,因为每个人使用习惯不一样,各有侧重,选择适合自己就好,以上工具仅供参考。

本文内容意在梳理分享,不在具体的工具使用方面做更加深入的讲解,因为每一个工具如果详细讲起来都会涉及大量篇幅,也不可能面面俱到,有兴趣的可以在社区或搜索引擎搜索之。

推荐小工具:

Dig,ethtool,iperf,iftop,dstat,mtr

比如在你想知道两个主机之间的带宽是否能够到达相应的带宽,请使用iperf。想动态的查看目的地是否可到以及延迟等信息,请使用mtr。

四、故障的诊断与分析

故障诊断处理方面不是一两句话就可以说清楚的,很大程度上在于平时经验的积累,很多故障都是相互关联的,如何顺藤摸瓜,找到问题的最终原因,有一些方法可以借鉴。这里不具体描述解决那个问题用了什么方法,只是聊聊解决问题有哪些经验和技巧。

分享一点小小的经验:

a)平时要多问几个为什么

b)故障是否可以重现,找到第一个场景,关注整体结合细节

c)多方面相互参考,同事之间相互配合

d)可以多做几个假设,直到推翻自己的想法

e)自己的工具箱要有几个使用顺手的TOOLS,包括自己开发的

以上只是一些解决问题的方法,具体问题还要具体分析。

下面我们结合一个真实的案例来描述一下:在出现网络故障时,。我们如何想办法快速的排除问题。

场景描述:

某日下午,公司里内部的业务系统突然出现反应比较慢的问题,多个业务管理员过来描述问题现象。近期一段时间内曾出现过类似的问题,该类问题的原因是由于业务区的防火墙老旧,处理能力不足,导致CPU在短时间内使用率激增,超过了境界阈值很多,导致此类现象的发生。

解决思路:

1)初步定位

又是类似问题的出现,肯定不是个别业务系统的问题,一看就是有共性的,问题应该是出现在网络设备上才对,这样才会造成大面积的问题,可是该防火墙一周前已经升级换代了,不应该有此类问题了。查看业务区域拓扑,因为拓扑已经在心中,直接搞起。

2) 逐步排查

首先登录新的防火墙,查看CPU使用率,一切正常,看来问题不在此。

然后登录业务系统去交换机查看负载,一看果然是高,高达99%,我勒个去,配合网络管理员查看问题原因,查看各种性能信息,初步没有太合理的线索,不能精准定位问题。收集各种信息准备发给厂商支持。

3) 协助排查

多方回忆近期有无做过其他操作。

网络方面: 一周前升级换代该区域防护墙

主机方面: 昨天接入6太新设备,并做端口绑定bond

4)再次排查

由于该区域Windows主机设备均已经安装杀毒软件,病毒的可能性不大,Linux 病毒可能性就更小了,先初步忽略。 由于昨天上线6个主机设备,着重观察网络设备所连接端口,

通过交换机和监控性能视图分析该端口今天出现流量过大的问题,端口饱和。由于影响业务面比较广,需要快速定位问题或者暂时消除影响。初步意见,交换机上线shutdown 这6台机器所连端口。持续观察了一段时间,交换机CPU 负载下来了,其他业务逐渐恢复。考虑到已经下班,暂时观察一下,明天看情况再做调整。并结合一下厂商意见。

5) 第二日上班后,6台机器业务恢复,交换机CPU负载又上来了,但是其他业务没有影响,什么情况?再次进行梳理,找问题线索。

6) 进一步排查

网络管理员打开debug 查看信息,经过一段时间的分析梳理发现有12个mac 地址频繁的在两台交换机来回出现,核对mac 后,可以定位引起CPU过载的原因是这新上线的6台机器(每台机器两个端口bond),果断拔掉其中一个端口,交换机CPU负载很快下来,那么就可以能定位bond绑定有问题。

7) 系统进一步排查

我做了很多次bond了,就算这次换了一个高版本操作系统应该也没有问题啊,果断检查之,查看绑定模式,一看模式为0 ,当时一惊,不应该啊。进一步查看确实是模式配置错误了,当初我想设定的是模式6,后来不知道怎么写成0 了,以为其他机器都是拷贝过去的,所以都是模式0了,立马改之。重启网卡,一切看似正常,重新插入网线观察交换机CPU 负载很稳定。这次CPU高应该是这个引起的无疑了,这个锅扣到我脑袋上了。

8)下午14:00,问题又出现了,这次交换机的cpu也不高了,什么情况,一脸懵逼的状态。

再次排查,这次聚焦交换机,收集大量信息反馈给厂商,很快厂商给出的建议说是端口饱和丢包严重,影响了其他业务端口的正常使用,经过厂商进一步排查确认,该型号交换机虽然以前性能很好,但是已经属于老旧设备,该型号端口组背板能力只有1G,该组其他端口带宽总和已经超过了1G,属于交换机处理能力不足。

9) 进一步协调该项目人员,调整大量交互端口成内网私有网段,单独使用一个千兆交换机做内部业务交互使用,外部访问还继续走这个交换机。最终这个问题得到解决。

总结:

此次事件引出三个问题:

1.端口绑定不可马虎,需要仔细再仔细,并做验证

2.预估业务端口网络流量不足,主机设备连线分配不合理

3.交换机老旧,处理能力不足

后续应该针对此类事情多多的总结,升级换代产品,深入了解业务特性。

内容来自twt社区,如侵删

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

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

相关文章

2024年家政预约上门服务小程序【用户端+商家端+师傅端】源码

024最新家政预约上门服务小程序源码 主要功能:商家入住,师傅入住,缴纳保正金 支持师傅,抢单派单 支持多城市多门下单,支持预约上门服务到店核销 支持补差价义价,支持区域服务限制 基于thinkphp和原生小程序开发

【五】【算法分析与设计】双指针的初见

167. 两数之和 II - 输入有序数组 给你一个下标从 1 开始的整数数组 numbers ,该数组已按 非递减顺序排列 ,请你从数组中找出满足相加之和等于目标数 target 的两个数。如果设这两个数分别是 numbers[index(1)] 和 numbers[index(2)] ,则 1 &…

排序类算法

目录 一、交换类排序 1.冒泡排序 2.快速排序 二、 插入排序 1.直接插入排序 2.折半插入排序 3.希尔排序 三、选择排序 1.简单选择排序 2.堆排序 完整代码 四、归并排序 完整代码 五、汇总 六、OJ练习 1.冒泡排序:正确表示前一个数和后一个数 2.选…

LLM推理框架Triton Inference Server学习笔记(一): Triton Inference Server整体架构初识

官方文档查阅: TritonInferenceServer文档 1. 写在前面 这篇文章开始进行大语言模型(Large Language Model, LLM)的学习笔记整理,这次想从Triton Inference Server框架开始,因为最近工作上用到了一些大模型部署方面的知识, 所以就快速补充了…

【STM32】串口助手接受数据是乱码如何解决

第一步 首先判断自己使用的串口助手和工程配置的波特率是否相同,一般都是115200 第二步 如果不是上一条的问题,继续排查,检查时钟问题 打开工程,找到此文件(stm32f10x.h)的这个位置,如工程中未添加,可以从…

centos安装hadoop启动问题解决方案

1、出现了问题localhost: ERROR: JAVA_HOME is not set and could not be found. *解决方案尝试: 修改hadoop-env.sh(在etc/hadoop) sudo gedit /usr/local/hadoop/etc/hadoop/hadoop-env.sh 将原本的JAVA_HOME 替换为绝对路径就可以了 #expo…

Leetcode 144. 二叉树的前序遍历

题目描述:给定一个二叉树的根节点 root ,返回 它的 前序 遍历 。 示例 1: 输入:root [1,null,2,3] 输出:[1,3,2] 示例 2: 输入:root [] 输出:[] 示例 3: 输入&…

关于C语言调用Python,PyImport_ImportModule函数的简介

函数原型:PyObject *PyImport_ImportModule(const char *name) 用于加载编译目标的文件 这个模块必须为.py文件,因为说直白点就是通过Python3 xxxx.py能够通过编译的东西

项目管理【引论二】项目管理的逻辑

系列文章目录 【引论一】项目管理的意义 【引论二】项目管理的逻辑 一、项目管理的目标 项目管理的目标是在规定的时间内,在批准的预算内,完成事先确定的工作范围内的工作,并且达到预期的质量性能要求。 1.1 时间、成本和质量之间的关系 1…

力扣226.翻转二叉树(二叉树的先序遍历)

文章目录 题目描述思路复杂度Code 题目描述 思路 利用二叉树的先序遍历,每次递归遍历时将当前节点的左右子节点交换即可 复杂度 时间复杂度: O ( n ) O(n) O(n);其中 n n n为树节点的个数 空间复杂度: O ( h e i g h ) O(heigh) O(heigh);其…

嵌入式学习第二十七天!(TCP并发模型)

TCP并发模型: 1. TCP多线程模型: 缺点:创建线程会带来资源开销,能够实现的并发量比较有限。 2. IO模型: 1. 阻塞IO: 没有数据到来时,可以让任务挂起,节省CPU资源开销,提…

案例分析篇01:软件架构设计考点架构风格及质量属性(2024年软考高级系统架构设计师冲刺知识点总结系列文章)

专栏系列文章推荐: 2024高级系统架构设计师备考资料(高频考点&真题&经验)https://blog.csdn.net/seeker1994/category_12601310.html 【历年案例分析真题考点汇总】与【专栏文章案例分析高频考点目录】(2024年软考高级系统架构设计师冲刺知识点总结-案例分析篇-…

【SpringCloud微服务实战01】Eureka 注册中心

前言 在 Eureka 架构中,微服务角色有两类: EurekaServer :服务端,注册中心 记录服务信息 心跳监控 EurekaClient :客户端 Provider :服务提供者,例如案例中的 user-service 注册自己的信息到 EurekaS…

解决vue项目,运行npm install安装报缺少c++库问题

项目是前后端分离架构,前端使用的是vue框架,在部署前端项目时,需要下载安装一些基础的镜像配置,包括一些预处理,但是在使用npm install和yarn install命令时出现了如下错误,查阅资料总结如下: …

WPF(2)命令绑定

效果是&#xff1a;当TextBox控件的Text属性为空时show按钮不可用&#xff0c;有值时show按钮可用 项目结构 界面代码 <Window x:Class"WpfApp1.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://sc…

Flutter ios一键三连脚本

flutter运行ios时总得执行三个命令,中间还得等待&#xff0c;有没有脚本自动执行 ## ios 执行命令 - flutter clean - flutter pub get - cd ios - pod install有&#xff0c;项目根目录创建shell 文件夹&#xff0c;新建setup.sh setup.sh里面放如下代码 #!/bin/bash# ios …

ffmpeg解码和渲染理解

ffmpeg解码和渲染理解 ffmpeg视频解码步骤 FFmpeg 是一个功能强大的跨平台多媒体处理工具&#xff0c;包含了音视频编解码、封装/解封装、过滤器等功能。下面是一般情况下使用 FFmpeg 进行视频解码的步骤&#xff1a; 初始化 FFmpeg 库&#xff1a;首先需要初始化 FFmpeg 库&a…

【Sql】数据库的三范式?MySQL数据库引擎有?InnoDB与MyISAM的区别

目录 数据库的三范式&#xff1f; MySQL数据库引擎有&#xff1f; InnoDB与MyISAM的区别 数据库的三范式&#xff1f; 第一范式&#xff1a;是数据库最基本的要求&#xff0c;列不可再分 第二范式&#xff1a;行可以唯一区分&#xff0c;主键约束 第三范式&#xff1a;是在…

【深度学习笔记】7_4 动量法momentum

注&#xff1a;本文为《动手学深度学习》开源内容&#xff0c;部分标注了个人理解&#xff0c;仅为个人学习记录&#xff0c;无抄袭搬运意图 7.4 动量法 在7.2节&#xff08;梯度下降和随机梯度下降&#xff09;中我们提到&#xff0c;目标函数有关自变量的梯度代表了目标函数…

【ArcGIS】栅格数据进行标准化(归一化)处理

栅格数据进行标准化&#xff08;归一化&#xff09;处理 方法1&#xff1a;栅格计算器方法2&#xff1a;模糊分析参考 栅格数据进行标准化(归一化)处理 方法1&#xff1a;栅格计算器 栅格计算器&#xff08;Raster Calculator&#xff09; 方法2&#xff1a;模糊分析 空间…