Linux
文章平均质量分 93
pony.li
前百度、鹅厂高级后台开发一枚
展开
-
网络性能优化思路
网络性能优化思路文章目录网络性能优化思路前言一、确定优化目标二、网络性能工具网络性能优化应用程序套接字传输层网络层链路层总结前言网络问题比我们前面学过的 CPU、内存或磁盘 I/O 都要复杂。无论是应用层的各种 I/O 模型,冗长的网络协议栈和众多的内核选项,抑或是各种复杂的网络环境,都提高了网络的复杂性。不过,也不要过分担心,只要你掌握了 Linux 网络的基本原理和常见网络协议的工作流程,再结合各个网络层的性能指标来分析,你会发现,定位网络瓶颈并不难。找到网络性能瓶颈后,下一步要做的就是优化了原创 2021-02-21 22:08:30 · 4936 阅读 · 0 评论 -
磁盘 I/O 性能优化思路
磁盘 I/O 性能优化思路文章目录磁盘 I/O 性能优化思路前言一、I/O 基准测试二、I/O 性能指标文件系统 I/O 性能指标磁盘 I/O 性能指标三、性能工具四、如何迅速分析 I/O 的性能瓶颈四、I/O 性能优化应用程序优化文件系统优化磁盘优化总结前言虽然 I/O 的性能指标很多,相应的性能分析工具也有好几个,但理解了各种指标的含义后,你就会发现它们其实都有一定的关联。顺着这些关系往下理解,你就会发现,掌握这些常用的瓶颈分析思路,其实并不难。找出了 I/O 的性能瓶颈后,下一步要做的就是优原创 2021-02-21 21:28:23 · 1432 阅读 · 0 评论 -
“快准狠”找到系统内存的问题
“快准狠”找到系统内存的问题文章目录“快准狠”找到系统内存的问题前言一、内存性能指标二、内存性能工具三、性能指标和工具的联系四、如何迅速分析内存的性能瓶颈总结前言有没有迅速定位内存问题的方法?当定位出内存的瓶颈后,又有哪些优化内存的思路呢?今天,我就来帮你梳理一下,怎样可以快速定位系统内存,并且总结了相关的解决思路。一、内存性能指标为了分析内存的性能瓶颈,首先你要知道,怎样衡量内存的性能,也就是性能指标问题。首先,你最容易想到的是系统内存使用情况,比如已用内存、剩余内存、共享内存、可用内存原创 2021-02-21 13:47:37 · 368 阅读 · 0 评论 -
cpu 性能优化思路
cpu 性能优化的几个思路文章目录cpu 性能优化的几个思路前言一、性能优化方法论性能优化是否有效多个性能问题同时存在,要怎么选择?有多种优化方法时,要如何选择?二、CPU 优化应用程序优化系统优化总结前言虽然 CPU 的性能指标很多,相应的性能分析工具也很多,但理解了各种指标的含义后,你就会发现它们其实都有一定的关联。顺着这些关系往下理解,你就会发现,掌握这些常用的瓶颈分析套路,其实并不难。在找到 CPU 的性能瓶颈后,下一步要做的就是优化了,也就是找出充分利用 CPU 的方法,以便完成更多的工原创 2021-02-21 13:16:32 · 1085 阅读 · 0 评论 -
linux 软中断
系列文章目录文章目录系列文章目录前言一、什么是软中断?二、查看软中断和内核线程总结前言说到中断,简单说过中断的含义,先来回顾一下。中断是系统用来响应硬件设备请求的一种机制,它会打断进程的正常调度和执行,然后调用内核中的中断处理程序来响应设备的请求中断其实是一种异步的事件处理机制,可以提高系统的并发处理能力。由于中断处理程序会打断其他进程的运行,所以,为了减少对正常进程运行调度的影响,中断处理程序就需要尽可能快地运行。如果中断本身要做的事情不多,那么处理起来也不会有太大问题;但如果中断要处理的事情原创 2021-02-20 14:03:28 · 1116 阅读 · 0 评论 -
linux 进程状态
进程状态文章目录进程状态前言查看进程状态总结前言当 iowait 升高时,进程很可能因为得不到硬件的响应,而长时间处于不可中断状态。从 ps 或者 top 命令的输出中,你可以发现它们都处于 D 状态,也就是不可中断状态(Uninterruptible Sleep)。既然说到了进程的状态,进程有哪些状态你还记得吗?我们先来回顾一下。查看进程状态top 和 ps 是最常用的查看进程状态的工具,我们就从 top 的输出开始。下面是一个 top 命令输出的示例,S 列(也就是 Status 列)表原创 2021-02-20 12:23:09 · 268 阅读 · 0 评论 -
linux cpu上下文切换
系列文章目录文章目录系列文章目录前言一、进程上下文切换二、线程上下文切换三、中断上下文切换总结前言进程在竞争 CPU 的时候并没有真正运行,CPU 上下文切换就是罪魁祸首。我们都知道,Linux 是一个多任务操作系统,它支持远大于 CPU 数量的任务同时运行。当然,这些任务实际上并不是真的在同时运行,而是因为系统在很短的时间内,将 CPU 轮流分配给它们,造成多任务同时运行的错觉。而在每个任务运行前,CPU 都需要知道任务从哪里加载、又从哪里开始运行,也就是说,需要系统事先帮它设置好 CPU 寄原创 2021-02-19 23:08:52 · 368 阅读 · 1 评论 -
linux 平均负载
linux 平均负载文章目录linux 平均负载前言一、平均负载是什么?二、平均负载为多少时合理平均负载与 CPU 使用率总结前言每次发现系统变慢时,我们通常做的第一件事,就是执行 top 或者 uptime 命令,来了解系统的负载情况。比如像下面这样,我在命令行里输入了 uptime 命令,系统也随即给出了结果。我相信你对前面的几列比较熟悉,它们分别是当前时间、系统运行时间以及正在登录用户数。而最后三个数字呢,依次则是过去 1 分钟、5 分钟、15 分钟的平均负载(Load Average),原创 2021-02-19 22:35:52 · 369 阅读 · 0 评论 -
Linux awk grep sed
Linux 三剑客在Linux中使用grep命令在Linux中使用awk命令欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入Linux中的Grep,Awk和Sed命令之间有什么区别?在Lin原创 2021-01-15 16:34:18 · 141 阅读 · 0 评论 -
Linux网络命令
Linux网络命令以下是关于linux网络开发的常用命令个人平时使用文章目录Linux网络命令一、网络模块1.查看磁盘i/o状态2.tcpdump 抓包3.检查网卡信息,找出需要解绑的网卡二、git1.第一次git提交2.第n次提交3.git rebase3.linux 命令总结一、网络模块1.查看磁盘i/o状态iostat -xkt -d 12.tcpdump 抓包tcpdump -r /home/bond0.pcaptcpdump -r /home/bond0.pcap -n原创 2020-11-11 11:15:09 · 327 阅读 · 0 评论 -
谈谈DPDK的Cache预取策略
系列文章目录事实上,Cache对于绝大多数程序员来说都是透明不可见的。程序员在编写程序时不需要关 心是否有Cache的存在,有几级Cache,每级Cache的大小是多少;不需要关心Cache采取何种策略将指令和数据从内存中加载到Cache中;也不需要关心Cache何时将处理完毕的数据写回到内存中。这一切,都是硬件自动完成的。但是,硬件也不是完全智能的,能够完美无缺地处理各 种各样的情况,保证程序能够以最优的效率执行。因此,一些体系架构 引入了能够对Cache进行预取的指令,从而使一些对程序执行效率有很 高原创 2020-10-25 11:42:41 · 1387 阅读 · 0 评论 -
OpenFlow你该懂的小知识
OpenFlow文章目录OpenFlow前言一、OpenFlow起源二、OpenFlow 设计思路三、FlowTable四、OpenFlow通信通道五、OpenFlow 应用网络虚拟化 --FlowVisor负载均衡--Aster*x总结前言作为SDN(Software Defined Network 软件定义 网络)的主要实现方式,OpenFlow发展史就是SDN的发展史,对整个SDN的发展起着功不可没的作用一、OpenFlow起源OpenFlow起源于斯坦福大学的Clean Slate项原创 2020-10-21 20:41:35 · 1155 阅读 · 0 评论 -
C/C++ do{} while(0) 你该知道的事?
do{}while(0)只执行一次无意义?你可能真的没理解1. do{ code }while(condition)结构2. do while/while do的区别3. 使用优势文章参考do{}while(0)只执行一次无意义?你可能真的没理解1. do{ code }while(condition)结构在C/C++开发中,宏定义非常强大也非常便捷,如果正确使用可以让你的工作事半功倍。然而,在很多的C/C++程序中,你可能会看到不是那么直接的比较特殊一点的宏定义,比如do{}while(0)。一.原创 2020-10-06 13:15:33 · 491 阅读 · 1 评论 -
C/C++“宏“你该知道的事! --宏实现简单日志系统
C/C++"宏"你该知道的事什么是“宏”,和常量有啥区别?1. 宏定义2. 常量3. 区别宏的高端用法简单的拿个宏来做个日志系统文章参考什么是“宏”,和常量有啥区别?1. 宏定义宏定义是C语言提供的三种预处理中的一种,又称为宏代换、宏替换,简称“宏”,用#define定义,如下:#define Pi 3.1415926宏常量没有类型,它是在编译前即预编译阶段进行字符替换,在预编译阶段,直接将PI替换成3.1415926,同时没有类型安全检查,系统也不会为它分配内存。在c语言中,头文件中的加入 #原创 2020-09-27 16:45:14 · 875 阅读 · 0 评论 -
Linux操作系统中的“迭代器“
Linux操作系统中的"迭代器"常规教科书中使用的双向链表linux系统提供的双向链表api二者对比分析1.首先从占用的内存的角度来看一下2.使用方便来说对应上述公式是怎么用宏运算出来的?文章参考常规教科书中使用的双向链表typedef struct double_linke_list_s { char * username; unsigned int age; struct double_linke_list_s *pre; //指向前一个指针节点 struct double_li原创 2020-09-22 17:00:10 · 491 阅读 · 0 评论