新尝试,视频号聊技术,欢迎双击爱心新尝试,60s分享一个正能量。“架构师之路”视频号,学技术,学管理,闯职场如果大家喜欢,我尽量坚持下去。推荐阅读:《架构师之路,21年干货精选》 阅读原文 文章原文
4w
1分钟系列,定位线上性能问题常用,希望大家能有收获。如何看查占用cpu最多的进程?方法一核心指令:ps实际命令:ps H -eo pid,pcpu | sort -nk2 | tail执行效果如下:[work@test01 ~]$ ps H -eo pid,pcpu | sort -nk2 | tail31396 0.631396 0.631396 0.631396 0.631396 0.631396 0.631396 0.631396 0.630904 1.030914 1.0结果:瞧见了吧,最耗cpu的pid=30914。画外音:实际上是31396。方法二核心指令:top实际命令:topShift + t找到了最耗CPU的进程ID,对应的服务名是什么呢?方法一核心指令:ps实际命令:ps...
4w
Web-Server有个配置,工作线程数。Service一般也有个配置,工作线程数。经验丰富的架构师,懂得如何配置这些参数,使得系统的性能达到最优:有些业务设置为CPU核数的2倍,有些业务设置为CPU核数的8倍,有些业务设置为CPU核数的32倍。“线程数”的设置依据,是本文要讨论的问题。工作线程数是不是设置的越大越好?答案显然是否定的:(1)服务器CPU核数有限,能够同时并发的线程数有限,单核CPU设置1000个工作线程没有意义;(2)线程切换有开销,如果线程切换过于频繁,反而会使性能降低; 调用sleep()函数的时候,线程是否一直占用CPU?不占用,休眠时会把CPU让出来,给其他需要CPU资源的线程使用。不止sleep,一些阻塞调用,例如网络编程中的:(1)阻塞accept(),等待客户端连接;(2)阻塞recv(),等待下游回包;都会让出CPU资源。单核CPU,设置多线程有意义么?单核CPU,设置多线程能否提高并发性能?即使是单核,使用多线程也是有意义的,大多数情况也能提高并发:(1)多线程编码可以让代码更加清晰,例如:IO线程收发包,Worker线程进行任务处理,Timeout线程进行超时检测;(2)如果有一个任务一直占用CP...
Dec 2022
新尝试,视频号聊技术,欢迎双击爱心新尝试,60s分享一个正能量。“架构师之路”视频号,学技术,学管理,闯职场如果大家喜欢,我尽量坚持下去。推荐阅读:《架构师之路,21年干货精选》 阅读原文 文章原文
Dec 2022
新尝试,视频号聊技术,欢迎双击爱心新尝试,60s分享一个正能量。“架构师之路”视频号,学技术,学管理,闯职场如果大家喜欢,我尽量坚持下去。推荐阅读:《架构师之路,21年干货精选》 阅读原文 文章原文
Dec 2022
一台机器,CPU100%,如何找到相关服务,如何定位问题代码,今天简单分享下思路。 假设,服务器上部署了若干Java站点服务,以及若干Java微服务,突然收到运维的CPU异常告警。如何定位是哪个服务进程导致CPU过载,哪个线程导致CPU过载,哪段代码导致CPU过载?简要步骤如下:(1)找到最耗CPU的进程;(2)找到最耗CPU的线程;(3)查看堆栈,定位线程在干嘛,定位对应代码;步骤一、找到最耗CPU的进程工具:top方法:执行top -c ,显示进程运行信息列表键入P (大写p),进程按照CPU使用率排序图示:如上图,最耗CPU的进程PID为10765。 步骤二:找到最耗CPU的线程工具:top方法:top -Hp 10765 ,显示一个进程的线程运行信息列表键入P (大写p),线程按照CPU使用率排序图示:如上图,进程10765内,最耗CPU的线程PID为10804。 步骤三:查看堆栈,定位线程在干嘛,定位对应代码首先,将线程PID转化为16进制。工具:printf方法:printf...
Dec 2022
新尝试,视频号聊技术,欢迎双击爱心新尝试,60s分享一个正能量。“架构师之路”视频号,学技术,学管理,闯职场如果大家喜欢,我尽量坚持下去。推荐阅读:《架构师之路,21年干货精选》 阅读原文 文章原文
Nov 2022
上周面试一个候选人,问了一个数据结构与算法的问题,表达式求值。 题目大概是这样的:输入长度为n的字符串,例如:1+2+3*4*5输出表达式的值,即:63 我暗示的问:应该用什么数据结构?候选人回答:栈。画外音:算是答对。 问:时间复杂度呢?回答:O(n^2)画外音:额,应该不需要两个for循环吧。 我接着提示:应该先计算哪一步?候选人回答:先计算3*4。画外音:额,难道是乘除大于加减?实际应该先计算1+2,说明候选人对“表达式求值”并没有搞透。 怎么用栈来实现呢?候选人:… 本来以为是送分题,候选人竟一时语塞。 为了广大面试的同学不再在这一题上送命,今天花几分钟把这个问题讲透彻。画外音:希望没有帮面试官增加题库。 “表达式求值”问题,两个核心关键点:(1)双栈,一个操作数栈,一个运算符栈;(2)运算符优先级,栈顶运算符,和,即将入栈的运算符的优先级比较:如果栈顶的运算符优先级低,新运算符直接入栈如果栈顶的运算符优先级高,先出栈计算,新运算符再入栈 仍以1+2+3*4*5举例,看是如何利用上述两个关键点实施计算的。 首先,这个例子只有+和*两个运算符,所以它的运算符表是:这里的含义是:(1)如果栈顶是+,即将入栈的是+,栈顶优先级高,需...
Nov 2022
前几天看了一篇文章,挺有感触的,分享给大家,略有删减。【1】人的认知,决定着他能到达的高度。认知的核心,是掌握规律,掌握人性。什么是规律?规律就是“世界就是这么运行的”,无法违背,不可逆转。规律不以人的意志为转移,我们只能去认识它、遵循它、而不要想去改变它。高层次认知的人,顶尖的人,大都依据事情的规律行事,从而取得成功。低层次认知的人,也就是大部分普通人,总期望道德约束、期望破格获取,期望别人拯救。【2】顶尖的人,坚信“弱肉强食”丛林法则这条规律。什么是“弱肉强食”的丛林法则?看几集动物世界,你就明白了。动物世界里,没有感情可言,没有道理可言,甚至没有对错可言。狼要吃羊,羊跟狼讲感情,讲道理,讲对错,有用吗?狼吃了羊,会得到报应吗?狼吃羊,就是规律!你是羊,你就应该被狼吃掉,这才是天经地义的事情!顶尖的人,大都遵守这个客观规律,所以不被任何世俗眼光,道德约束,一路狂奔,玩命把自己搞成狼!他们很清楚,自己如果成不了狼,就只会成为羊。而大部分普通人,却有着极强的依赖心理,会把一切的自身结果,合理化的归结外界原因。传统观念的死结就在一个‘靠’字上:在家靠父母,出门靠朋友,靠皇恩浩荡,靠菩萨显灵......
Nov 2022
新尝试,视频号聊技术,欢迎双击爱心新尝试,60s分享一个正能量。“架构师之路”视频号,学技术,学管理,闯职场如果大家喜欢,我尽量坚持下去。推荐阅读:《架构师之路,21年干货精选》 阅读原文 文章原文
Nov 2022
Follow RSS Feeds, Blogs, Podcasts, Twitter searches, Facebook pages, even Email Newsletters! Get unfiltered news feeds or filter them to your liking.
Get Inoreader