架构师之路 - RSS Feed

Latest articles

为什么,人总是无法控制自己“不胡思乱想”?

新尝试,视频号聊技术,欢迎双击爱心新尝试,60s分享一个正能量。“架构师之路”视频号,学技术,学管理,闯职场如果大家喜欢,我尽量坚持下去。推荐阅读:《架构师之路,21年干货精选》 阅读原文 文章原文

CPU爆了,你却连那个线程出问题都不知道?

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...

线程数,512是否合理?

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...

成年人最顶级的自律,就是克制自己想去纠正别人的欲望

新尝试,视频号聊技术,欢迎双击爱心新尝试,60s分享一个正能量。“架构师之路”视频号,学技术,学管理,闯职场如果大家喜欢,我尽量坚持下去。推荐阅读:《架构师之路,21年干货精选》 阅读原文 文章原文

从容易的开始,还是男的?

新尝试,视频号聊技术,欢迎双击爱心新尝试,60s分享一个正能量。“架构师之路”视频号,学技术,学管理,闯职场如果大家喜欢,我尽量坚持下去。推荐阅读:《架构师之路,21年干货精选》 阅读原文 文章原文

CPU100%,怎么快速定位?

一台机器,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...

搭建团队,这3招够用了!

新尝试,视频号聊技术,欢迎双击爱心新尝试,60s分享一个正能量。“架构师之路”视频号,学技术,学管理,闯职场如果大家喜欢,我尽量坚持下去。推荐阅读:《架构师之路,21年干货精选》 阅读原文 文章原文

表达式求值,有些候选人总以为自己懂了!

上周面试一个候选人,问了一个数据结构与算法的问题,表达式求值。 题目大概是这样的:输入长度为n的字符串,例如:1+2+3*4*5输出表达式的值,即:63 我暗示的问:应该用什么数据结构?候选人回答:栈。画外音:算是答对。 问:时间复杂度呢?回答:O(n^2)画外音:额,应该不需要两个for循环吧。 我接着提示:应该先计算哪一步?候选人回答:先计算3*4。画外音:额,难道是乘除大于加减?实际应该先计算1+2,说明候选人对“表达式求值”并没有搞透。 怎么用栈来实现呢?候选人:… 本来以为是送分题,候选人竟一时语塞。 为了广大面试的同学不再在这一题上送命,今天花几分钟把这个问题讲透彻。画外音:希望没有帮面试官增加题库。 “表达式求值”问题,两个核心关键点:(1)双栈,一个操作数栈,一个运算符栈;(2)运算符优先级,栈顶运算符,和,即将入栈的运算符的优先级比较:如果栈顶的运算符优先级低,新运算符直接入栈如果栈顶的运算符优先级高,先出栈计算,新运算符再入栈 仍以1+2+3*4*5举例,看是如何利用上述两个关键点实施计算的。 首先,这个例子只有+和*两个运算符,所以它的运算符表是:这里的含义是:(1)如果栈顶是+,即将入栈的是+,栈顶优先级高,需...

顶尖的人都是怎么想的!(很残酷)

前几天看了一篇文章,挺有感触的,分享给大家,略有删减。【1】人的认知,决定着他能到达的高度。认知的核心,是掌握规律,掌握人性。什么是规律?规律就是“世界就是这么运行的”,无法违背,不可逆转。规律不以人的意志为转移,我们只能去认识它、遵循它、而不要想去改变它。高层次认知的人,顶尖的人,大都依据事情的规律行事,从而取得成功。低层次认知的人,也就是大部分普通人,总期望道德约束、期望破格获取,期望别人拯救。【2】顶尖的人,坚信“弱肉强食”丛林法则这条规律。什么是“弱肉强食”的丛林法则?看几集动物世界,你就明白了。动物世界里,没有感情可言,没有道理可言,甚至没有对错可言。狼要吃羊,羊跟狼讲感情,讲道理,讲对错,有用吗?狼吃了羊,会得到报应吗?狼吃羊,就是规律!你是羊,你就应该被狼吃掉,这才是天经地义的事情!顶尖的人,大都遵守这个客观规律,所以不被任何世俗眼光,道德约束,一路狂奔,玩命把自己搞成狼!他们很清楚,自己如果成不了狼,就只会成为羊。而大部分普通人,却有着极强的依赖心理,会把一切的自身结果,合理化的归结外界原因。传统观念的死结就在一个‘靠’字上:在家靠父母,出门靠朋友,靠皇恩浩荡,靠菩萨显灵......

面对办公室政治,要做的就是...

新尝试,视频号聊技术,欢迎双击爱心新尝试,60s分享一个正能量。“架构师之路”视频号,学技术,学管理,闯职场如果大家喜欢,我尽量坚持下去。推荐阅读:《架构师之路,21年干货精选》 阅读原文 文章原文

Discover, share and read the best on the web

Follow RSS Feeds, Blogs, Podcasts, Twitter searches, Facebook pages, even Email Newsletters! Get unfiltered news feeds or filter them to your liking.

Get Inoreader
Inoreader - Follow RSS Feeds, Blogs, Podcasts, Twitter searches, Facebook pages, even Email Newsletters!