Browsed by
标签:性能优化

这多年来我一直在钻研的技术

这多年来我一直在钻研的技术

閱讀本文約花費: 15 (分鐘)因为我是看到tinyfool 《那些年我赶过的时髦技术趋势》(微博原文链接已失效,现更改为Google搜索的内容),在赞叹的时候,也让我对我有好些回忆,所以想写一篇回忆贴,本来觉得回忆是件挺让人沮喪的事,因为是老了的表现,但我写着写着,就歪了楼。看来,我还不老,还在拼博。下面是很多我的唠叨,你喜欢就读读,不喜欢就TLDR – Too Long, Don’t Read! 自从98年毕业,到今天,参加工作有18个年头了,加上在大三的时候就为两个在外面接活的老师程序,到今天,写的程序被用到生产线也有18个年头了。 背景经历 要说明我技术上的“性取向”,还得我说说的我的一些背景和经历。 我这18年,大约分三个阶段: 1996年-2000年:入门乱来期,大三大四加在银行工作的两年。 用Powerbuilder/Delphi在WindowsNT/SQL Server上做了好多个MIS管理软件,有酒店的,有送水的,有OA的。  用Java的Applet做了一个Web的教学课件,用于在Win95/IE3.0中演示操作系统中的各种调度和算法的动画,得了个全国大学生挑战者杯的鼓励奖。  用Delphi的ISAPI技术以及PHP/ASP给一些公司和大学做过几个网站。 2000年-2010年:技术学习期,这十年,我主要的编程语言是C/C++。 前两年在银…

Read More Read More

CephFS+Kubernetes 在网易轻舟容器平台的实践

CephFS+Kubernetes 在网易轻舟容器平台的实践

閱讀本文約花費: 8 (分鐘)在网易集团,基于 Kubernetes 构建的网易轻舟云原软件生产力平台扮演着支撑数字化业务快速高效创新的重任,帮助业务团队快速实现云原生应用,提高研发效能,并节省运维成本。 作为网易轻舟云原生平台的存储后端,CephFS 主要为网易轻舟容器平台 NCS 解决容器间共享存储的问题。尤其是在当前比较火的 AI 训练场景应用十分广泛,存储规模达已达数 PB 级,CephFS 的性能优化等工作非常重要。 Ceph 和 CephFS 简介 Ceph 由 RADOS 作为底座,上层提供对象、块、文件等接口服务。RADOS 由 MON、OSD、MGR 组成,MON 负责集群的各类视图(osdmap,pgmap 等),健康状态的管理。MGR 则提供了丰富的系统信息查询功能,以及支持第三方模块接入(Zabbix,Prometheus,Dashboard 等)。OSD 则负责最终的数据存储,一般一个 OSD 对应一块磁盘。 CephFS 在此架构基础之上增加了 MDS 和 client,其中 MDS 负责文件系统的元数据管理和持久化操作。client 则对外提供了兼容 POSIX 语义的文件系统客户端,可通过 mount 命令进行挂载。 CephFS 典型实践 部署 整个 CephFS 在轻舟 Kubernetes 环境中的部署架构如下: 在 Kubernetes 的使…

Read More Read More

去阿里面试被问:如果是MySQL引起的CPU消耗过大,你会如何优化?

去阿里面试被问:如果是MySQL引起的CPU消耗过大,你会如何优化?

閱讀本文約花費: 4 (分鐘) 链接:https://www.cnblogs.com/YangJiaXin/p/10933458.html 目录 谁在消耗cpu?祸首是谁? 用户 IO等待 产生影响 如何减少CPU消耗? 减少等待 减少计算 升级cpu 谁在消耗cpu? 用户+系统+IO等待+软硬中断+空闲 image image 祸首是谁? 用户 用户空间CPU消耗,各种逻辑运算 正在进行大量tps函数/排序/类型转化/逻辑IO访问… 用户空间消耗大量cpu,产生的系统调用是什么?那些函数使用了cpu周期? IO等待 等待IO请求的完成 此时CPU实际上空闲 如vmstat中的wa 很高。但IO等待增加,wa也不一定会上升(请求I/O后等待响应,但进程从核上移开了) image image 产生影响 用户和IO等待消耗了大部分cpu 吞吐量下降(tps) 查询响应时间增加 慢查询数增加 对mysql的并发陡增,也会产生上诉影响 image 如何减少CPU消耗? 减少等待 减少IO量 SQL/index,使用合适的索引减少扫描的行数(需平衡索引的正收益和维护开销,空间换时间) 提升IO处理能力 加cache/加磁盘/SSD image 减少计算 减少逻辑运算量 避免使用函数,将运算转移至易扩展的应用服务器中如substr等字符运算,dateadd/datesub等日期运算,abs等…

Read More Read More

Docker容器与虚拟化技术——部署KVM虚拟化平台

Docker容器与虚拟化技术——部署KVM虚拟化平台

閱讀本文約花費: 16 (分鐘) 本文重点介绍了 部署KVM虚拟化平台,怎么搭建KVM虚拟化平台 ,使用KVM命令集管理虚拟机,KVM动态迁移,KVM性能优化。 部署KVM虚拟化平台 一、搭建KVM虚拟化平台 1、前置知识点 (1)什么是虚拟化 把硬件资源从物理方式转变为逻辑方式,打破原有物理结构,使用户可以灵活管理这些资源,并且允许1台物理机上同时运行多个操作系统,以实现资源利用率最大化和灵活管理的技术 (2)虚拟化层 ①X86平台指令集划分为4个特权模式:ring0-3 ②操作系统工作在ring0 ③应用程序使用ring3 ④驱动程序使用ring1-2 (3)虚拟化的优势 ①减少服务器数量,降低硬件采购成本 ②资源利用率最大化 ③降低机房空间、散热、电耗成本 ④硬件资源可动态调整,提高企业IT业务灵活性 ⑤高可用性 ⑥在不中断服务的情况下进行物理硬件调整 ⑦降低管理成本 ⑧具备更高效的灾备能力 (4)VMware虚拟化 ①vSphere是VMware公司2001年基于云计算推出的一套企业级虚拟化解决方案,核心组件为ESX,现已被ESXi取代。经历了5个版本改进,实现了虚拟化基础架构、高可用性、集中管理、性能监控等一体化解决方案。号称世界第一套云计算的操作系统 ②ESXi本身也是一个操作系统,采用Linux内核(VMKernel),安装方式为裸金属方式,直接安装在物理服务器上,不…

Read More Read More

由12306.CN谈谈网站性能技术

由12306.CN谈谈网站性能技术

閱讀本文約花費: 31 (分鐘) 12306.cn网站挂了,被全国人民骂了。我这两天也在思考这个事,我想以这个事来粗略地和大家讨论一下网站性能的问题。因为仓促,而且完全基于本人有限的经验和了解,所以,如果有什么问题还请大家一起讨论和指正。(这又是一篇长文,只讨论性能问题,不讨论那些UI,用户体验,或是是否把支付和购票下单环节分开的功能性的东西) 业务 任何技术都离不开业务需求,所以,要说明性能问题,首先还是想先说说业务问题。 其一,有人可能把这个东西和QQ或是网游相比。但我觉得这两者是不一样的,网游和QQ在线或是登录时访问的更多的是用户自己的数据,而订票系统访问的是中心的票量数据,这是不一样的。不要觉得网游或是QQ能行你就以为这是一样的。网游和QQ 的后端负载相对于电子商务的系统还是简单。 其二,有人说春节期间订火车的这个事好像网站的秒杀活动。的确很相似,但是如果你的思考不在表面的话,你会发现这也有些不一样。火车票这个事,一方面会伴随着大量的查询操作,更BT的是下单的时候需要对数据库很多的一致性的操作,一方面是从起点到终点各个分段票的一致性,另一方面,买的人路线、车次、时间选择有很多,会不停地改变下单方式。而秒杀,直接杀就好了,没有那么多查询和一致性的问题。另外,关于秒杀,完全可以做成只接受前N个用户的请求(完全不操作后端的任何数据, 仅仅只是对用户的下单操作log),这种业务,只…

Read More Read More

兩年取得 AWS All-5 + BigData 認證的學習心得

兩年取得 AWS All-5 + BigData 認證的學習心得

閱讀本文約花費: 6 (分鐘)上個月考過 AWS Solutions Architect-Professional,沈澱之後想做個學習紀錄與分享。想想從開始準備到現在一晃眼也兩年了,像讀了一個碩士班一樣… XD。若專心於取得認證的朋友們,一定能找到適合自己的方式與更快的節奏來完成這個目標。只是考試這類事情因每個人的起點、專長經歷、備考時間分配、完成動機不同,所以需走過的路也不同,以下分享希望對某些人能有所幫助。 個人工作背景 軟體公司的技術經理,開發與營運 Web/API 服務,對架構有制定的空間,故能將 AWS 適合的方案帶入工作範圍 考試動機 學習瞭解 Cloud-Native Best Practices 架構設計,工作本質上就在開發與協助 SaaS 服務 多些能力證明以爭取工作上更多架構設計的影響力 完成日期與成績 Transcript for Chiang Hsien TaiCheck out my transcript to see all of my accomplishments.www.certmetrics.com 12/09, 2016. 87%. AWS Certified Solutions Architect — Associate02/21, 2017. 87%. AWS Certified Developer …

Read More Read More

如何成为优秀的技术主管?你要做到这三点

如何成为优秀的技术主管?你要做到这三点

閱讀本文約花費: 36 (分鐘) 技术主管,又叫「技术经理」,英文一般是 Tech Leader ,简称 TL。随着工作经验的不断积累,能力的不断提升,每个人都有机会成为Team Leader。然而在机会到来前,我们必须提前做好准备,对TL的工作职责有一定了解。当然,这也会为当下更好地配合TL工作打下基础。 今天, 结合自己多年的经验,从开发规范、开发流程、技术规划与管理三个角度出发,分享对技术TL这一角色的理解与思考。 「技术主管」是开发团队中的某位程序员需要对一起创建系统的整个开发团队负责时所承担的角色。通常他既要对最终交付的软件系统负责,另外也会像一个程序员一样去开发实现系统。 一个技术主管的 60% ~ 70% 的时间可能花在了开发任务分解分配、开发实践、技术架构评审、代码审核和风险识别上,而余下的 30% ~ 40% 的时间则花在为了保障系统按时交付所需的各种计划、协作、沟通、管理上。和团队管理者不同的是,技术主管的大部分管理工作都是针对具体研发任务和技术事务的。 接下来基于我在技术TL这个角色上,在开发规范、开发流程、技术管理与规划等方面我的一些心路历程,和大家共勉。 开发规范 我当时负责的业务是集团收购一家子公司的业务,在整体技术标规范上与集团的技术标准存在很大的差异。开发规范可以说是我来到这个团队干的第一件事,我当时面对的问题是API接口格式混乱,没有标准的RPC服…

Read More Read More

Etcd Raft使用入门及原理解析

Etcd Raft使用入门及原理解析

閱讀本文約花費: 13 (分鐘)什么是Raft Raft是一个分布式一致性算法,充分的利用了可复制状态机以及日志。其最核心的设计目标就是易于理解。在性能、错误容错等方面来看有点类似Paxos,但不同之处在于,Raft论文较为清晰的描述了其主要流程以及其中一些细节问题,而Paxos我们知道非常难以理解。 当构建一个分布式系统时,一个非常重要的设计目标就是fault tolerance。如果系统基于Raft协议实现,那么当其中一个节点挂掉,或者发生了网络分区等异常情况时,只要大多数节点仍然能够正常通讯,整个集群就能够正常对外提供服务而不会挂掉。 关于Raft更多的细节,这里建议直接阅读论文: “In Search of an Understandable Consensus Algorithm“ 介绍 Etcd的Raft库已经在生产环境得到了非常广泛的应用,有力的支撑了etcd、K8S、Docker Swarm、TiDB/TiKV等分布式系统的构建,当你能够熟练的使用一个成熟的Raft库、甚至如果能够自己实现一个,那会有种’有了锤子,干什么都是钉子’的感觉。 特性 Etcd raft基本上已经实现了Raft协议的完整特性,包括: – Leader选举 – 日志复制 – 日志压缩 – 成员变更…

Read More Read More

Linux Performance

Linux Performance

閱讀本文約花費: 6 (分鐘)from: http://www.brendangregg.com/linuxperf.html This page links to various Linux performance material I’ve created, including the tools maps on the right. The first is a hi-res version combining observability, static performance tuning, and perf-tools/bcc (see discussion). The remainder were designed for use in slide decks and have larger fonts and arrows, and show: Linux observability tools, Linux benchmarking tools, Linux tuning tools, and Linux sar. For even more diagrams, see my slide decks below. Tools perf_events: perf one-liners, examples, visualizations. perf-tool…

Read More Read More

Linux Performance

Linux Performance

閱讀本文約花費: 6 (分鐘)from: http://www.brendangregg.com/linuxperf.html This page links to various Linux performance material I’ve created, including the tools maps on the right. The first is a hi-res version combining observability, static performance tuning, and perf-tools/bcc (see discussion). The remainder were designed for use in slide decks and have larger fonts and arrows, and show: Linux observability tools, Linux benchmarking tools, Linux tuning tools, and Linux sar. For even more diagrams, see my slide decks below. Tools perf_events: perf one-liners, examples, visualizations. perf-tool…

Read More Read More

Scroll Up