如何做系统性能优化 性能优化的目标是什么?不外乎两个: 时间性能:减小系统执行的时间 空间性能:减小系统占用的空间 一、代码优化 做代码优化前,先了解下硬件Cache: (1)Cache Level:通常来说L1、L2的Cache集成在CPU里,L3的Cache放在CPU外; (2)Cache Size:它决定你能把多少东西放到Cache里,有Size就有竞争,就有替换,才有所谓优化的空间; (3)Cache Type:I-Cache(指令),D-Cache(数据),TLB(MMU的Cache); 代码层次
性能优化的目标是什么?不外乎两个: 时间性能:减小系统执行的时间 空间性能:减小系统占用的空间 一、代码优化 做代码优化前,先了解下硬件Cache: (1)Cache Level:通常来说L1、L2的Cache集成在CPU里,L3的Cache放在CPU外; (2)Cache Size:它决定你能把多少东西放到Cache里,有Size就有竞争,就有替换,才有所谓优化的空间; (3)Cache Type:I-Cache(指令),D-Cache(数据),TLB(MMU的Cache); 代码层次的优化主要从以下两
hi,大家好,今天分享一篇内存性能优化的文章,文章用了大量精美的图深入浅出地分析了Linux内核slab性能优化的核心思想,slab是Linux内核小对象内存分配最重要的算法,文章分析了内存分配的各种性能问题(在不同的场景下面),并给出了这些问题的优化方案,这个对我们实现高性能内存池算法,或以后遇到内存性能问题的时候,有一定的启发,值得我们学习。
本文从OSI每一层缓存介绍、常见开源中间件缓存举例、TCP/IP协议栈中的缓存机制、操作系统中的缓存、访问缓存数据的时间范围统计等方面对计算机中的缓存进行详细介绍。希望对您有所帮助!
原文链接:https://blog.csdn.net/dog250/article/details/46666029
在疫情期间,小编不得不待在家中远程办公。但变的是办公方式,不变的是美创运维的7*24小时不间断支持。
零拷贝(Zero-Copy)是一个大家耳熟能详的概念,那么,具体有哪些框架会使用到零拷贝呢?在思考这个问题之前,让我们先一起探寻一下零拷贝机制的底层原理。
👋 你好,我是 Lorin 洛林,一位 Java 后端技术开发者!座右铭:Technology has the power to make the world a better place.
本文基于 Joe Mario 的一篇博客 改编而成。 Joe Mario 是 Redhat 公司的 Senior Principal Software Engineer,在系统的性能优化领域颇有建树,他也是本文描述的 perf c2c 工具的贡献者之一。 这篇博客行文比较口语化,且假设读者对 CPU 多核架构,Cache Memory 层次结构,以及 Cache 的一致性协议有所了解。 故此,笔者决定放弃照翻原文,并且基于原博客文章做了一些扩展,增加了相关背景知识简介。 本文中若有任何疏漏错误,责任在于编译者。有任何建议和意见,请回复内核月谈微信公众号,或通过 oliver.yang at linux.alibaba.com 反馈。
针对海量的网络流量,转发性能是我们最关键的一个方面,那构建高性能的后台服务器有哪些关键的技术和需要注意的地方。
编译器优化乱序和CPU执行乱序的问题可以分别使用优化屏障 (Optimization Barrier)和内存屏障 (Memory Barrier)这两个机制来解决:
本文主要描述Linux Page Cache优化的背景、Page Cache的基本概念、列举之前针对Kafka的 IO 性能瓶颈采取的一些解决方案、如何进行Page Cache相关参数调整以及性能优化前后效果对比。
作为这个系列的第一篇,我先来描述一下slab系统。因为近些天有和同事,朋友讨论过这个主题,而且觉得这个主题还算比较典型,所以就作为第一篇了。其实按照操作系统理论来讲,进程管理应该更加重要些,按照我自己的兴趣来讲,IO管理以及TCP/IP协议栈会更加有分量,关于这些内容,我会陆续给出。
线上集群后端某台Web服务器例行检查时,我观察到+buffers/cache值(即Linux内存的实际使用情况)一直都是5365左右,就算停掉Nginx+FastCGI程序和其它程序也是一样,考虑到这台机器经常在使用rsync+inotify,肯定会存在着频繁存取文件的情况。而Linux系统有一个特性:在Linux下频繁存取文件时,就会占用物理内存。当程序结束时并不会自动释放被占用的内存,而是一直作为Cache存在。实际上内核结束一个程序后,它是会释放内存的,但是内核并没有立刻将这部分收集到free当中,而是存在在cached或者buffer当中,提高系统的io效率,cache和buffered的内存是由内核进行动态的配置管理,如果系统的free大小不够的时候,系统会自动释放cache buffer的内存给程序使用(因此如果是看到used很多,来手动释放内存其实是不需要的,我前面的文章及书籍其实也说明了我们应该如何观察Linux系统的实际内存使用情况,这里就不再多描述了)。
针对海量的网络流量,转发性能是我们最关键的一个方面,那构建高性能的后台服务器有哪些关键的技术和需要注意的地方,今天邀请了后台开发同学童琳和郑胜利来和大家一起谈谈。 一、引言 随着互联网的高速发展,内容量的提升以及对内容智能的需求、云产业的快速突起,作为互联网的计算基石服务器的形态以及使用成为了炙手可热的话题,全球各家大型互联网公司都持续的在服务器平台上有非常大的动作,譬如facebook的OCP等,而整个服务器的生态链也得到了促进和发展。随着服务器硬件性能的提升和网络硬件的开放,传统PC机的处理性能甚者可
送分题 面试官:有操作过Linux吗? 我:有的呀 面试官:我想查看内存的使用情况该用什么命令 我:free 或者 top 面试官:那你说一下用free命令都可以看到啥信息 我:那,如下图所示 可以看
MySQL对于很多Linux从业者而言,是一个非常棘手的问题,多数情况都是因为对数据库出现问题的情况和处理思路不清晰。在进行MySQL的优化之前必须要了解的就是MySQL的查询过程,很多的查询优化工作实际上就是遵循一些原则让MySQL的优化器能够按照预想的合理方式运行而已。 今天我们特别邀请了资深的Linux运维老司机惨绿少年Linux来给大家体验MySQL的优化实战,助你高薪之路顺畅。 作者:惨绿少年Linux,马哥Linux原创作者社群特约作者,资深Linux运维工程师,作者博客:www.nmtui.
之前文章《Linux服务器性能评估与优化(一)》太长,阅读不方便,因此拆分成系列博文:
Kafka是大数据领域无处不在的消息中间件,目前广泛使用在企业内部的实时数据管道,并帮助企业构建自己的流计算应用程序。Kafka虽然是基于磁盘做的数据存储,但却具有高性能、高吞吐、低延时的特点,其吞吐量动辄几万、几十上百万,这其中的原由值得我们一探究竟。本文属于Kafka知识扫盲系列,让我们一起掌握Kafka各种精巧的设计。
在Linux系统中,我们经常用free命令来查看系统内存的使用状态。在一个RHEL6的系统上,free命令的显示内容大概是这样一个状态:
在 Linux 系统中,传统的访问方式是通过 write() 和 read() 两个系统调用实现的,通过 read() 函数读取文件到到缓存区中,然后通过 write() 方法把缓存中的数据输出到网络端口。
linux运维中,web cache server方案的部署是一个很重要的环节,选择也有很多种比如:varnish、squid、nginx。 下面就对当下常用的这几个web cache server做一对比: 1)从功能上说:varnish和squid是专业的cache服务,而nginx的cache功能是由第三方模块完成。 2)要做cache服务的话,肯定是要选择专业的cache服务,优先选择squid和varnish。 Varnish 可以认为是内存缓存,速度一流,但是内存缓存也限制了其容量,缓存页面和图
此文来自于AndresFreund,PG社区资深开发,探讨IO对于PG方面的问题。此翻译和文字来自于视频,因为部分英文听的比较费劲,所以可能有失误的地方,尽请见谅。
但是让我问你,由于 Buffer 只是将写入磁盘的数据的缓存。反过来,它还会缓存从磁盘读取的数据吗?或者 Cache 是从文件中读取数据的缓存,那么它是否也为写入文件缓存数据呢?
因为硬盘每次读写都会寻址和写入,其中寻址是一个耗时的操作。所以为了提高读写硬盘的速度,Kafka使用顺序I/O,来减少了寻址时间:收到消息后Kafka会把数据插入到文件末尾,每个消费者(Consumer)对每个Topic都有一个offset用来表示读取的进度。
Linux有Linux kernal,我们的客户端,进行连接,首先到达的是Linux kernal,在Linux的早期版本,只有read和write进行文件读写。我们使用一个线程/进程 进行调用read和write函数,那么将会返回一个文件描述符fd(file description)。我们开启线程/进程去调用read进行读取。因为socket在这个时期是blocking(阻塞的),遇到高并发,就会阻塞,也就是bio时期。
作者:星辰算力平台 1. 背景 随着大数据、人工智能技术的蓬勃发展,人类对于算力资源的需求也迎来大幅度的增长。在腾讯内部,星辰算力平台以降本增效为目标,整合了公司的GPU训练卡资源,为算法工程师们提供统一的底层GPU算力服务。借助于虚拟化、算力挖掘等技术,平台服务公司内各BG的AI训练场景,GPU利用率业界领先。同时,通过云原生任务化的方式,对接了内部各大业务,促进了AI技术研究效率的提升和创新研究。 当下,由于AI训练时的高性能计算设备(如NVIDIA GPU)成本高昂,如果任务在训练过程中不能保证
马哥linux运维 | 最专业的linux培训机构 ---- 最近在维护一台CentOS服务器的时候,发现内存无端"损失"了许多,free和ps统计的结果相差十几个G,搞的我一度又以为遇到灵异事件了,后来Google了许久才搞明白,特此记录一下,以供日后查询。 虽然天天都在用Linux系统办公,其实对它的了解也不过尔尔。毕业几年才迈入"知道自己不知道"的境界,我觉得自己丝毫没有愧对万年吊车尾这个称号 :( 问题描述和初步调查 同事说有一台服务器的内存用光了,我连上去用free看了下,确实有点怪。 $ fr
我曾经在公司处理过很多次Mysql性能上的问题,利用一些Linux常用的命令来查看Mysql对服务器的CUP和I/O使用情况,通过慢查询日志找出有待优化的sql,通过show processlist查看正在执行的sql的情况以及及时kill死锁的sql,通过EXPLAIN分析需要优化的sql语句。当然也对Mysql内部配置做了一些调整。 最近也在看《高性能MySQL》这本Mysql的经典书籍,很早的时候我就想写一个系列来介绍我在使用Mysql遇到的一些问题。无意中发现一篇博客写的内容和我想写的基本差不
本文从操作系统的角度来解释BIO,NIO,AIO的概念,含义和背后的那些事。本文主要分为3篇。 第一篇 讲解BIO和NIO以及IO多路复用 第二篇 讲解磁盘IO和AIO 第三篇 讲解在这些机制上的一些应用的实现方式,比如nginx,nodejs,Java NIO等 磁盘IO 磁盘IO,简单来说就是读取硬盘一类设备的IO。这类设备包括传统的磁盘、SSD、闪存、CD等。操作系统将其统一抽象为”块设备“。所以磁盘IO又可以叫做”块IO“。这些设备上的数据一般用文件系统来组织,所以又可以成为”文件IO“。本文统
从我们用户的使用就可以感受到网速一直在提升,而网络技术的发展也从1GE/10GE/25GE/40GE/100GE的演变,从中可以得出单机的网络IO能力必须跟上时代的发展。
磁盘IO,简单来说就是读取硬盘一类设备的IO。这类设备包括传统的磁盘、SSD、闪存、CD等。操作系统将其统一抽象为”块设备“。所以磁盘IO又可以叫做”块IO“。这些设备上的数据一般用文件系统来组织,所以又可以成为”文件IO“。本文统一用”磁盘IO“这个术语。
Lighttpd有硬盘级别的cache-(mod_cache)和内存级别的cache(mod_mem运维
在 Python 开发中,Pip 是最常用的包管理工具之一,它用于安装、升级和管理 Python 包。然而,随着时间的推移,Pip 可能会积累大量的缓存文件,占用磁盘空间并可能导致一些问题。因此,定期清除 Pip 缓存是一个好习惯。本文将详细介绍如何清除 Pip 缓存,帮助您优化 Python 环境并释放磁盘空间。
在介绍完我博客(imququ.com)的 Nginx 配置中与安全有关的一些配置后,这篇文章继续介绍与性能有关的一些配置。WEB 性能优化是一个系统工程,涵盖很多方面,做好其中某个环节并不意味性能就能变好,但可以肯定地说,如果某个环节做得很糟糕,那么结果一定会变差。
Nginx(读音engine x)服务器由于性能优秀稳定、配置简单以及跨平台,被越来越多的公司和个人所采用,现已成为市场份额继Apache之后的第二大Web服务器。各大小网站论坛博客也介绍说明了Nginx从安装到优化的各种配置。
网上已经有很多关于Linux内核内存管理的分析和介绍了,但是不影响我再写一篇:一方面是作为其他文章的补充,另一方面则是自己学习的记录、总结和沉淀。
运维工程师(Operations)是负责维护并确保整个服务的高可用性,同时不断优化系统架构提升部署效率、优化资源利用率提高整体的ROI的专业人员。他们的基本职责是负责服务的稳定性,确保服务可以7*24H不间断地为用户提供服务。
上回书讲到了运维小哥的调优方法论(上),对于Ceph运维人员来说最头痛的莫过于两件事:一、Ceph调优;二、Ceph运维。调优是件非常头疼的事情,下面来看看运维小哥是如何调优的。
小文件读写的性能瓶颈是磁盘的寻址(随机读写性能更差),评估的标准是tps。大文件读写的性能瓶颈是带宽,评估的标准是持续的读写速度。Linux可以利用空闲内存作文件系统访问的cache,因此系统内存越大存储系统的性能也越好。
最近周四的一篇文字中的分享引起了部分同学的注意,私信我,并问了一些问题,这里挑拣了 红旗迎东风(希望名字没有敲错)同学的问题。他的问题主要是围绕 POSTGRESQL buffer 与 os cache 之间的关系,展开的。
注意事项:除了 Direct I/O,与磁盘相关的文件读写操作都有使用到 page cache 技术。
文章转载于:http://9388751.blog.51cto.com/9378751/1676821
很多squid 优化只限于在 squid 参数和系统参数上面的调整。但是这个实在只是细枝末节的事情,只要不是太弱智的配置导致无法缓存,squid的性能不会有太大差距,也就提高10%左右,只有实际的业务针对 squid 进行一些调整,squid 才会真正爆发出他的能量,很多时候有 100%-200% 的提升。
本文以 2 个新增 Redis 原子事件为例,帮助刚接触 ChaosBlade 的社区同学快速入门开源贡献。
领取专属 10元无门槛券
手把手带您无忧上云