
Linux 性能优化
文章平均质量分 90
linux性能优化
富士康质检员张全蛋
人生实难,唯有自渡。只有接受了真实现的现状和真实的自己,调整好心态,才能脚踏实地的活着,然后去发现角落处的那些惊喜和美好,去相信一切苦难困境都会过去!“即使身处阴沟,也要记得仰望星空”。
展开
-
使用 Linux 的 strace 命令跟踪/调试程序的常用选项
strace常用来跟踪进程执行时的系统调用和所接收的信号。 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式,通过系统调用访问硬件设备。strace可以跟踪到一个进程产生的系统调用,包括参数,返回值,执行消耗的时间。strace命令是一个集诊断、调试、统计与一体的工具,我们可以使用strace对应用的系统调用和信号传递的跟踪结果来对应用进行分析,以达到解决问题或者是了解应用工作过程的目的。当然strace与专..转载 2020-11-09 12:00:47 · 873 阅读 · 0 评论 -
Linux操作系统,为什么需要内核空间和用户空间?
本文以 32 位系统为例介绍内核空间(kernel space)和用户空间(user space)。内核空间和用户空间对 32 位操作系统而言,它的寻址空间(虚拟地址空间,或叫线性地址空间)为 4G(2的32次方)。也就是说一个进程的最大地址空间为 4G。操作系统的核心是内核(kernel),它独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的所有权限。为了保证内核的安全,现在的操作系统一般都强制用户进程不能直接操作内核。具体的实现方式基本都是由操作系统将虚拟地址空.转载 2020-10-22 09:26:09 · 854 阅读 · 1 评论 -
如何正确理解 CPU 使用率和平均负载的关系?看完你就知道了
CPU(Central Processing Unit)是计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元,相当于系统的“大脑”。当 CPU 过于繁忙,就像“人脑”并发处理过多的事情,会降低做事的效率,严重时甚至会导致崩溃“宕机”。因此,理解 CPU 的工作原理,合理控制负载,是保障系统稳定持续运行的重要手段。CPU 的物理核与逻辑核一台机器可能包含多块 CPU 芯片,多个 CPU 之间通过系统总线通信。一块 CPU 芯片可能包含多个物理核,每个物理核都是一个实打实的运算核心.转载 2020-06-24 22:20:09 · 1369 阅读 · 0 评论 -
案例分析 平均负载与CPU使用率
平均负载与CPU使用率现实工作中,我们经常容易把平均负载和CPU使用率混淆,所以在这里,我也做一个区分。可能你会疑惑,平均均负载代表的是活跃进数,那平均负载高了,不就意味着CPU使用率高吗?我们还是要回到平均负载的含义上来,平均负载是指单位时间内,处于可运行状态和不可中断状态的进程数。所以,它不仅包括了正在使用CPU的进程,还包括等待CPU和等待I/O的进程。而CPU使用率,是单位时间内CPU繁忙情况的统计,跟平均负载并不一定完全对应。比如:•CPU密集型进程,使用大量CPU会导致平均.原创 2020-06-25 19:29:03 · 557 阅读 · 2 评论 -
Linux stress性能压测工具使用
Stressstress 是压力测试工具,是Posix系统下生成CPU/Menory/IO/Disk负载的工具,这里我们用作异常进程模拟平均负载升高的场景Stress 安装[root@localhost ~]# yum install -y epel-release[root@localhost ~]# yum install stress -yStress 参数说明-? 显示帮助信息-v 显示版本号-q 不显示运行信息-n,--dry-run 显示已经完成的指令执行情况.原创 2020-06-21 14:55:13 · 1894 阅读 · 0 评论 -
Linux pidstat对运行进程实时监控
pidstat 概述pidstat是sysstat工具的一个命令,用于监控全部或指定进程的cpu、内存、线程、设备IO等系统资源的占用情况。pidstat首次运行时显示自系统启动开始的各项统计信息,之后运行pidstat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。pidstat 安装pidstat 是sysstat软件套件的一部分,sysstat包含很多监控linux系统状态的工具,它能够从大多数linux发行版的软件源中获得。...原创 2020-06-24 17:17:08 · 1110 阅读 · 0 评论 -
透过现象看本质 CPU上下文切换
CPU上下文切换是保证 Linux系统正常工作的一个核心功能,按照不同场景,可以分为进程上下文切换、线程上下文切换和中断上下文切换。究竟怎么分析CPU上下文切换的问题。过多的上下文切换,会把CPU时间消耗在寄存器、内核栈以及虚拟内存等数据的保存和恢复上,缩短进程真正运行的时间,成了系统性能大幅下降的一个元凶。既然上下文切换对系统性能影响那么大,到底要怎么査看上下文切换呢?可以使用vmstat这个工具,来查询系统的上下文切换情况。vmstat是常用的系统性能分析工具,主要用来分析系统的内存使用..原创 2020-07-02 22:09:26 · 1138 阅读 · 1 评论 -
Linux Cpu使用率和perf工具简介
你最常用什么指标来描述系统的CPU性能呢?答案可能不是平均负载,也不是CPU上下文切换,而是另外一个更直观的指标一CPU使率。CPU使用率是单位时间内CPU使用情况的统计,以百分比的方式展示。那么, 作为最常用也是最熟悉的CPU指标,你能说出CPU使用率到底是怎么算出来的吗?再有,诸 如top、ps之类的性能工具展示的%user、%nice、%system、%iowait、%steal等等,你又能弄清楚它们之间的不同吗?CPU的5种状态在linux平台下cpu存在5种状态使用组合。...转载 2020-07-06 11:43:18 · 1908 阅读 · 0 评论 -
Perf 工具帮你定位CPU使用率过高案例一则
你的准备以下案例基于Centos7.4,同样适用于其他的Linux系统。使用的环境如下所示:・机器配置:4CPU, 2GB内存[root@www ~]# cat /proc/cpuinfo | grep 'physical id' | sort | uniqphysical id : 0physical id : 2physical id : 4physical id : 6•预先安装 sysstat、perf、ab 等工具[root@www ~]# y...原创 2020-07-09 11:59:00 · 2310 阅读 · 0 评论 -
Linux 系统的 CPU 使用率很高,但为啥却找不到高 CPU 的应用?
上一节我讲了 CPU 使用率是什么,并通过一个案例教你使用 top、vmstat、pidstat 等工具,排查高 CPU 使用率的进程,然后再使用 perf top 工具,定位应用内部函数的问题。不过就有人留言了,说似乎感觉高 CPU 使用率的问题,还是挺容易排查的。那是不是所有 CPU 使用率高的问题,都可以这么分析呢?我想,你的答案应该是否定的。回顾前面的内容,我们知道,系统的 CPU 使用率,不仅包括进程用户态和内核态的运行,还包括中断处理、等待 I/O 以及内核线程等。所以,当你发现系统的转载 2020-12-10 22:56:39 · 2061 阅读 · 0 评论 -
Linux CPU性能 系统当中的不可中断进程D和僵尸进程Z
CPU使用率的类型。除了用户CPU之外,它还包括系统 CPU (比如上下文切换)、等待I/O的CPU (比如等待磁盘的响应)以及中断CPU (包括软中断和硬中断)等。上下文切换会导致系统CPU使用率高,剩下的等待I/O的 CPU使用率(以下简称为iowait)升高,也是最常见的一个服务器性能问题。进程状态当iowait升高时,进程很可能因为得不到硬件的响应,而长时间处于不可中断状态。从ps或者top命令的输出中,你可以发现它们都处于D状态,也就是不可中断状态(Uninterrup...转载 2020-07-15 22:13:13 · 1067 阅读 · 0 评论 -
Linux 案例分析不可中断状态和僵尸状态进程
多进程应用的案例,带你分析大量不可中断状态和僵尸状态进程的问题・机器配置:2 CPU, 8GB内存•预先安装 docker、sysstat、dstat 等工具这里,dstat是的性能工具,它吸收了 vmstat、iostat、ifstat等几种工具的优点,可以 同时观察系统的CPU、磁盘I/O、网络以及内存使用情况。然后,输入PS命令,确认案例应用已正常启动。如果一切正常,你应该可以看到如下所示的输 出$ ps aux I grep /approot 4009 0.0 ..转载 2020-07-27 11:44:43 · 1678 阅读 · 0 评论 -
Linux 系统中的僵尸进程
Linux 系统中僵尸进程Linux 系统中僵尸进程和现实中僵尸(虽然我也没见过)类似,虽然已经死了,但是由于没人给它们收尸,还能四处走动。僵尸进程指的是那些虽然已经终止的进程,但仍然保留一些信息,等待其父进程为其收尸。僵尸进程如何产生的?如果一个进程在其终止的时候,自己就回收所有分配给它的资源,系统就不会产生所谓的僵尸进程了。那么我们说一个进程终止之后,还保留哪些信息?为什么终止之后还需要保留这些信息呢?一个进程终止的方法很多,进程终止后有些信息对于父进程和内核还是很有用的,例如进程的ID原创 2020-07-24 18:03:44 · 532 阅读 · 0 评论 -
怎么理解Linux软中断?
进程的不可中断状态是系统的一种保护机制,可以保证硬件的交互过程不被意外打断。所以,短时间的不可中断状态是很正常的。但是,当进程长时间都处于不可中断状态时,你就得当心了。这时,你可以使用 dstat、pidstat 等工具,确认是不是磁盘 I/O 的问题,进而排查相关的进程和磁盘设备。其实除了 iowait,软中断(softirq)CPU 使用率升高也是最常见的一种性能问题。从“取外卖”看中断说到中断,我在前面关于“上下文切换”的文章,简单说过中断的含义,先来回顾一下。中断是系统用来响应.转载 2020-12-22 21:19:10 · 263 阅读 · 0 评论 -
Linux 为什么CPU访问硬盘的速度巨慢
http://www.differencebetween.net/technology/difference-between-von-neumann-and-harvard-architecture/机械硬盘(Hard Disk Drive、HDD)和固态硬盘(Solid State Drive、SSD)是两种最常见的硬盘,作为计算机的外部存储,CPU 想要访问它们存储的数据需要很长时间,如下表所示,在 SSD 中随机访问 4KB 数据所需要的时间是访问主存的 1,500 倍,机械磁盘的寻道时间是访问主原创 2020-09-29 09:45:44 · 1188 阅读 · 0 评论 -
Linux 终端查看最消耗CPU内存的进程
1.CPU占用最多的前10个进程ps auxw|head -1;ps auxw|sort -rn -k3|head -102.内存消耗最多的前10个进程ps auxw|head -1;ps auxw|sort -rn -k4|head -103.虚拟内存使用最多的前10个进程ps auxw|head -1;ps auxw|sort -rn -k5|head -104.也可以试试ps auxw --sort=rssps auxw --sort=%cpu5.转载 2020-09-21 11:08:55 · 481 阅读 · 1 评论 -
Linux ps命令和pstree命令
Linux中的ps命令是Process Status的缩写。ps命令用来列出系统中当前运行的那些进程。ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令。要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而 ps 命令就是最基本同时也是非常强大的进程查看命令。使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等。总之大部分信息都是可以通过执行该命令得原创 2020-10-31 19:11:25 · 1177 阅读 · 0 评论 -
Linux 关于内存最疑惑的几个问题
问题 1:内存回收与 OOM实际上包括四个子问题,即:怎么理解 LRU 内存回收? 回收后的内存又到哪里去了? OOM 是按照虚拟内存还是实际内存来打分? 怎么估计应用程序的最小内存?一旦发现内存紧张,系统会通过三种方式回收内存。我们来复习一下,这三种方式分别是 :基于 LRU(Least Recently Used)算法,回收缓存 基于 Swap 机制,回收不常访问的匿名页 基于 OOM(Out of Memory)机制,杀掉占用大量内存的进程 前两种方式,缓存回收和 ...转载 2020-09-14 11:34:02 · 1418 阅读 · 0 评论 -
LInux fork的写时复制(copy on write)
在读《Redis设计与实现》关于哈希表扩容的时候,发现这么一段话:执行BGSAVE命令或者BGREWRITEAOF命令的过程中,Redis需要创建当前服务器进程的子进程,而大多数操作系统都采用写时复制(copy-on-write)来优化子进程的使用效率,所以在子进程存在期间,服务器会提高负载因子的阈值,从而避免在子进程存在期间进行哈希表扩展操作,避免不必要的内存写入操作,最大限度地节约内存。Linux下的copy-on-write在说明Linux下的copy-on-write机制前,我们首.原创 2020-09-04 10:52:10 · 5870 阅读 · 4 评论 -
Linux 计算机基础知识必知必会
基础知识回顾这部分我们简单回顾一下计算机存储体系、虚拟内存、栈和堆,以及堆内存的管理,这部分内容对理解和掌握内存管理比较重要。存储金字塔这幅图表达了计算机的存储体系,从上至下依次是:CPU寄存器 Cache 内存 硬盘等辅助存储设备 鼠标等外接设备从上至下,访问速度越来越慢,访问时间越来越长。你有没有思考过下面2个简单的问题,如果没有不妨想想:如果CPU直接访问硬盘,CPU能充分利用吗? 如果CPU直接访问内存,CPU能充分利用吗?CPU速度很快,但硬盘等持久.转载 2020-08-13 23:29:00 · 346 阅读 · 0 评论 -
Linux 操作系统中进程和线程的概念
进程:进程是系统进行资源分配和调度的一个独立单位。线程:线程是进程的一个实体,是CPU调度和分派的基本单位,线程自己基本上不拥有系统资源,只拥有一点在系统运行中必不可少的资源,但是它可与同属一个进程的其他线程共享进程所拥有的全部资源。进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。今天看到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂。1、计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。2、假..原创 2020-07-18 09:35:25 · 803 阅读 · 0 评论 -
如何诊断 Linux 服务器的性能?10个工具助力你
对 Linux 的性能诊断当你为了解决一个性能问题登录到一台 Linux 服务器:在第一分钟你应该检查些什么?在 Netflix,我们有一个巨大的 EC2 Linux 云,以及大量的性能分析工具来监控和诊断其性能。其中包括用于云监控的 Atlas,以及用于按需实例分析的 Vector。虽然这些工具可以帮助我们解决大多数问题,但我们有时仍需要登录到一个服务器实例,并运行一些标准 Linux 性能工具。在这篇文章中,Netflix Performance Engineering...转载 2020-06-24 20:37:27 · 296 阅读 · 0 评论 -
Linux 探秘之用户态与内核态
一、Unix/Linux的体系架构 如上图所示,从宏观上来看,Linux操作系统的体系架构分为用户态和内核态(或者用户空间和内核)。内核从本质上看是一种软件——控制计算机的硬件资源,并提供上层应用程序运行的环境。用户态即上层应用程序的活动空间,应用程序的执行必须依托于内核提供的资源,包括CPU资源、存储资源、I/O资源等。为了使上层应用能够访问到这些资源,内核必须为上层应用提供访问的接口:即系统调用。 系统调用是操作系统的最小功能单位,这些系统调用根据不同的应用场景可以进行扩展和裁剪,现在.转载 2020-07-08 21:54:20 · 451 阅读 · 0 评论 -
牛逼的Linux性能剖析工具—perf
概述系统级性能优化通常包括两个阶段:性能剖析(performance profiling)和代码优化。性能剖析的目标是寻找性能瓶颈,查找引发性能问题的原因及热点代码。代码优化的目标是针对具体性能问题而优化代码或编译选项,以改善软件性能。本篇主要讲性能分析中常用的工具——perf。perf是一款Linux性能分析工具。Linux性能计数器是一个新的基于内核的子系统,它提供一个性能分析框架,比如硬件(CPU、PMU(Performance Monitoring Unit))功能和软件(软件计数器...转载 2020-07-13 21:51:59 · 1276 阅读 · 0 评论 -
Linux perf工具简介与使用
Perf 简介Perf 是用来进行软件性能分析的工具。(per-tools 是性能优化大师brendan gregg 就有perf 以及ftrace 编写的性能优化工具集提供了io 、网络、系统调用。。。大部分方面的性能分析工具)通过它,应用程序可以利用 PMU,tracepoint 和内核中的特殊计数器来进行性能统计。它不但可以分析指定应用程序的性能问题 (per thread),也可以用来分析内核的性能问题,当然也可以同时分析应用代码和内核,从而全面理解应用程序中的性能瓶颈。最初的时候转载 2020-07-07 14:40:59 · 1693 阅读 · 1 评论 -
Linux 进程状态D Disk Sleep
Linux进程状态:S (TASK_INTERRUPTIBLE),可中断的睡眠状态处于这个状态的进程因为等待某某事件的发生(比如等待socket连接、等待信号量),而被挂起。这些进程的task_struct结构被放入对应事件的等待队列中。当这些事件发生时(由外部中断触发、或由其他进程触发),对应的等待队列中的一个或多个进程将被唤醒。通过ps命令我们会看到,一般情况下,进程列表中的绝大多数进程都处于TASK_INTERRUPTIBLE状态(除非机器的负载很高)。毕竟CPU就这么一两个,进程动...原创 2020-07-10 22:15:10 · 4562 阅读 · 0 评论 -
Linux dstat性能监控工具使用简介
在做性能测试,免不了需要linux监控工具和命令,而且行业中也有很多成熟的性能监控工具,网上也是一搜一大把,对于不同项目需要的选型,也造成一定干扰,到底哪个比较好用,哪个监控比较全面,谁也没有很好的解释,最后也是自己经过一系列的查找,终于找到一个可以综合监控的小工具dstat,以下内容经过查找网上资料收集而成。简述dstat 是一个可以取代vmstat,iostat,netstat和ifstat这些命令的多功能产品。dstat克服了这些命令的局限并增加了一些另外的功能,增加了监控项,也变得..原创 2020-07-18 20:35:03 · 823 阅读 · 1 评论 -
Linux CPU软中断案例一则
中断是一种异步的事件处理机制,用来提高系统的并发处理能力。中断事件发生,会触发执行中断处理程序,而中断处理程序被分为上半部和下半部这两个部分。● 上半部对应硬中断,用来快速处理中断● 下半部对应软中断,用来异步处理上半部未完成的工作Linux 中的软中断包括网络收发、定时、调度、RCU锁等各种类型,我们可以查看proc 文件系统中的/proc/softirqs,观察软中断的运行情况。在Linux中,每个CPU都对应一个软中断内核线程,名字是 ksofirqd/CPU编号。当软中断事件的频率过转载 2020-08-03 11:51:42 · 1394 阅读 · 0 评论 -
Linux 如何迅速分析定位CPU性能瓶颈
CPU的性能指标那么多,CPU性能分析工具也是一抓一大把,换成实际的工作场景,我又该观察什么指标、选择哪个性能工具呢?不要担心,今天我就以多年的性能优化经验,给你总结出一个"又快又准"的瓶颈定位套路,告诉你在不同场景下,指标工具怎么选,性能瓶颈怎么找。CPU性能指标描述 CPU的性能指标都有哪些 ?首先,最容易想到的应该是CPU 使用率,这也是实际环境中最常见的一个性能指标。CPU使用率描述了非空闲时间占总CPU时间的百分比,根据CPU上运行任务的不同,又被分为用户CPU、系统 CPU.转载 2020-08-03 11:30:00 · 2000 阅读 · 0 评论 -
perf工具定位短时进程导致CPU升高案例
你使用top、vmstat、pidstat等工具, 排査高CPU使用率的进程,然后再使用perftop工具,定位应用内部函数的问题 我们知道,系统的CPU使用率,不仅包括进程用户态和内核态的运行,还包 括中断处理、等待I/O以及内核线程等。所以,当你发现系统的CPU使用率很高的时候,不一 定能找到相对应的高CPU使用率的进程。案例分析你的准备本次案例还是基于Ubuntu 18.04,同样适用于其他的Linux系统。我使用的案例环境如下所示:机器配置:2 CPU, ...转载 2020-07-20 09:44:38 · 1697 阅读 · 0 评论 -
套路篇:如何迅速分析出系统CPU的瓶颈在哪里?
前几节里,我通过几个案例,带你分析了各种常见的 CPU 性能问题。通过这些,我相信你对 CPU 的性能分析已经不再陌生和恐惧,起码有了基本的思路,也了解了不少 CPU 性能的分析工具。不过,我猜你可能也碰到了一个我曾有过的困惑: CPU 的性能指标那么多,CPU 性能分析工具也是一抓一大把,如果离开专栏,换成实际的工作场景,我又该观察什么指标、选择哪个性能工具呢?不要担心,今天我就以多年的性能优化经验,给你总结出一个“又快又准”的瓶颈定位套路,告诉你在不同场景下,指标工具怎么选,性能瓶颈怎么找。转载 2021-01-04 21:22:32 · 616 阅读 · 0 评论 -
Linux 搞懂物理内存和虚拟内存
对于精通CURD的业务同学,内存管理好像离我们很远,但这个知识点虽然冷门(估计很多人学完根本就没机会用上)但绝对是基础中的基础。这就像武侠小说中的内功修炼,学完之后看不到立竿见影的效果,但对你日后的开发工作是大有裨益的,因为你站的更高了。再功利点的说,面试的时候不经意间透露你懂这方面知识,并且能说出个一二三来,也许能让面试官对你更有兴趣,离升职加薪,走上人生巅峰又近了一步。虚拟地址即使是现代操作系统中,内存依然是计算机中很宝贵的资源,看看你电脑几个T固态硬盘,再看看内存大小就知道了...原创 2020-08-11 10:40:07 · 1232 阅读 · 1 评论 -
Linux 从 lsof 开始,深入理解 Linux 虚拟文件系统!
背景有时会出现这样的情况,磁盘空间显示已经被占满,但是在查看磁盘的具体文件占用情况时,发现磁盘仍然有很大的空余空间。1. 执行df命令查看磁盘使用情况,发现磁盘已经满了。-bash-4.2$ df -ThFilesystem Type Size Used Avail Use% Mounted on/dev/vda1 ext4 30G 30G 0 100% /devtmpfs devtmpfs 489M 0转载 2020-10-11 09:30:51 · 473 阅读 · 1 评论 -
Linux 为什么我的磁盘I/O延迟很高?
上一节,我们研究了一个狂打日志引发 I/O 性能问题的案例,先来简单回顾一下。日志,是了解应用程序内部运行情况,最常用也是最有效的工具。日志一般会分为调试、信息、警告、错误等多个不同级别。通常,生产环境只用开启警告级别的日志,这一般不会导致 I/O 问题。但在偶尔排查问题时,可能需要我们开启调试日志。调试结束后,很可能忘了把日志级别调回去。这时,大量的调试日志就可能会引发 I/O 性能问题。你可以用 iostat ,确认是否有 I/O 性能瓶颈。再用 strace 和 lsof ,来定位应用程序转载 2020-10-19 08:52:49 · 5852 阅读 · 0 评论 -
Linux I/O 如何找出狂打日志的“内鬼”?
前两节,我们学了文件系统和磁盘的 I/O 原理,我先带你复习一下。文件系统,是对存储设备上的文件进行组织管理的一种机制。为了支持各类不同的文件系统,Linux 在各种文件系统上,抽象了一层虚拟文件系统 VFS。它定义了一组所有文件系统都支持的数据结构和标准接口。这样,应用程序和内核中的其他子系统,就只需要跟 VFS 提供的统一接口进行交互。在文件系统的下层,为了支持各种不同类型的存储设备,Linux 又在各种存储设备的基础上,抽象了一个通用块层。通用块层,为文件系统和应用程序提供了访问块设备转载 2020-10-14 09:13:17 · 571 阅读 · 0 评论 -
Linux 挂载之磁盘I/O优化 Access Time
前言 默认情况下,Linux ext2/ext3/ext4 文件系统在文件被访问、创建、修改等的时候记录下了文件的一些时间戳,比如:文件创建时间、最近一次修改时间和最近一次访问时间。Linux下的三个时间:1. Access Time:简写为atime,表示文件的访问时间。当文件内容被访问时,更新这个时间2. Modify Time:简写为mtime,表示文件内容的修改时间,当文件的数据内容被修改时,更新这个时间。3. Change Time:简写为ctime,表示文件的状...原创 2020-08-03 17:30:39 · 634 阅读 · 0 评论 -
这篇文章把Linux零拷贝讲透彻了!
本文探讨 Linux 中主要的几种零拷贝技术以及零拷贝技术的适用场景。为了迅速建立起零拷贝的概念,我们拿一个常用的场景进行引入。在写一个服务端程序时(Web Server或者文件服务器),文件下载是一个基本功能。这时候服务端的任务是:将服务端主机磁盘中的文件不做修改地从已连接的 Socket 发出去。我们通常用下面的代码完成:while((n=read(diskfd,buf,BUF_SIZE))>0)write(sockfd,buf,n);基本操...转载 2020-07-01 11:18:57 · 327 阅读 · 0 评论