• CPU突然飙升到300%,Dubbo活动线程数直接飙到1000
    扫描下方二维码试读背景:新功能开发测试完成后,准备发布上线,当发布完第三台机器时,监控显示其中一台机器CPU突然飙升到300%,Dubbo活动线程数直接飙到1000+,不得不停止发布,立马回滚出问题的机器回滚之后恢复正常,继续观察另外两台已经发布的机器,最终,无一幸免,只能全部回滚了。说明下,filterMission是当前服务中QPS较高的接口,所以导致故障的可能性也较高。Code Review从应用日志找不到原因所在,只能再做一次code review了。注意,java中Lock对象不会使线程进入该状态。
  • 拯救 CPU!
    很多人认为,硬件的下一个进步是将神经网络加速器添加到CPU + GPU集群中。神经网络加速器需要数十GB/s或更多带宽,而这些带宽只能占用CPU和GPU的中央存储器资源,因此这项任务会更为艰难。外部存储器的需求也很高SoC中的CPU、GPU或其他加速器和功能块的设计人员都需要想法设法尽量将数据留在芯片上。但是,片上的存储器很昂贵——CPU核心的最大缓存很少超过1MB。假设有一个单核64位CPU,其时钟为2GHz。而这只是CPU集群需要的带宽!由于中央处理器是大多数SoC的核心,因此必须为CPU和GPU集群提供充裕的存储器带宽。
  • 拯救CPU
    很多人认为,硬件的下一个进步是将神经网络加速器添加到CPU + GPU集群中。神经网络加速器需要数十GB/s或更多带宽,而这些带宽只能占用CPU和GPU的中央存储器资源,因此这项任务会更为艰难。外部存储器的需求也很高SoC中的CPU、GPU或其他加速器和功能块的设计人员都需要想法设法尽量将数据留在芯片上。但是,片上的存储器很昂贵——CPU核心的最大缓存很少超过1MB。假设有一个单核64位CPU,其时钟为2GHz。且不论其他方面的使用,仅仅为CPU集群提供数据传输就可以轻松消耗掉这个带宽。
  • 七问Redis,才知道我与技术大牛的差距在哪里
    “Hello,Redis!我们相处已经很多年了,从模糊的认识到现在我们已经深入结合,你的好我一直都知道也一直都记住,能否再让我多问你的几个问题,让我更加深入的去了解你。Redis的通讯协议是什么Redis 的通讯协议是文本协议,是的,Redis 服务器与客户端通过 RESP(Redis Serialization Protocol)协议通信。没错,文本协议确实是会浪费流量,不过它的优点在于直观,非常的简单,解析性能极其的好,我们不需要一个特殊的 Redis 客户端仅靠 Telnet 或者是文本流就可以跟 R
  • 系统运行缓慢,CPU 100%,以及Full GC次数过多问题的排查思路
    本文主要针对系统运行缓慢这一问题,提供该问题的排查思路,从而定位出问题的代码点,进而提供解决该问题的思路。对于Full GC较多的情况,其主要有如下两个特征:线上多个线程的CPU都超过了100%,通过jstack命令可以看到这些线程主要是垃圾回收线程通过jstat命令监控GC情况,可以看到Full GC次数非常多,并且次数在不断增加。从而进一步证实了是由于内存溢出导致的系统缓慢。
  • 深入Spectre V2——跨进程泄露敏感信息
    本文为看雪论坛精华文章看雪论坛作者ID:极目楚天舒一、幽灵漏洞介绍幽灵是一个存在于分支预测实现中的硬件缺陷及安全漏洞,含有预测执行功能的现代微处理器均受其影响,该漏洞使得攻击者可以在用户态突破CPU的进程隔离,导致跨进程敏感信息泄露。截至2018年,几乎所有的计算机系统都受到Spectre的影响,包括台式机、笔记本电脑和移动设备。视频:利用spectre v2跨进程泄露敏感信息源代码下载二、目标1、在受害者进程中找到可以在攻击者和受害者之间建立信息传递的隐蔽通道[3][p9]。
  • 如何查看 Linux 服务器性能参数指标?
    一个基于 Linux 操作系统的服务器运行的同时,也会表征出各种各样参数信息。running 很自然不必多说,包括正在 CPU 上运行的和将要被调度运行的;sleeping 通常是等待事件完成的任务,细分可以包括 interruptible 和 uninterruptible 的类型;stopped 是一些被暂停的任务,通常发送 SIGSTOP 或者对一个前台任务操作 Ctrl-Z 可以将其暂停;zombie 僵尸任务,虽然进程终止资源会被自动回收,但是含有退出任务的 task descriptor 需要父进程访问后才能释放,这种进程显示为 defunct 状态,无论是因为父进程提前退出还是未 wait 调用,出现这种进程都应该格外注意程序是否设计有误。
  • 如何搭建一个高可用的服务端渲染工程
    但同时,也带来了一些问题:页面的DOM完全由js来渲染,使得大部分搜索引擎无法爬取渲染后真实的DOM,不利于SEO。// 终于讲到服务端渲染这个重点了。而正是Node的发展和基于Virtual DOM的前端框架的出现,使得用js实现服务端渲染成为可能。这样做的好处是明显的:1. 较大地节省CPU资源;2. 减小了服务端渲染直出的html字符串长度,能够更快地响应给浏览器,减小白屏时间。
  • 对cpu与load的理解及线上问题处理思路解读
    前言2019双11还有不到2个月就要到来了,大家也都知道服务器在大促期间由于流量的增加势必导致机器的cpu与load变高。因此趁着这个时机正好再好好学习、巩固一下cpu和load的概念,为双11做准备的同时也是增加自己的技能储备。top命令既然说了cpu和load,那总需要监控吧,没有监控就不知道cpu和load,后面的一切也就无从谈起了。特别注意,load指的是所有核的平均值,这和cpu的值是有区别的。load高、cpu高的问题排查思路首先抛出一个观点:cpu高不是问题,由cpu高引起的load高才是问题,load是判断系统能力指标的依据。
  • 你知道线程池创建多少线程比较合理吗?
    理解这个问题之前我们要先清楚的知道我们为什么使用多线程。为什么会使用多线程使用多线程的主要目的我们应该都能回答的出来就是提高程序的性能,这个提高性能其实是指,降低延迟指发送请求到接收到数据的时间,和提搞吞吐量:单位时间能可以处理更多的请求。创建多少线程比较合适经过上面的分析,我们知道创建多少线程能够将硬件的利用率达到最高才是最好的线程数。程序中没有 IO 操作只有 Cpu 的话称之为 Cpu 密集型程序。结束语看到这里想必大家在回答创建多个线程比较合理这个问题有了新的思路,希望能够帮助各位小伙伴!
  • 【原创】Java并发探索(1)之初识并发
    在阅读本文前,请思考以下问题1.并发的目的2.并发会带来什么问题3.什么是上下文切换?进程是OS分配资源的最小单位。线程是程序执行的最小单位。在上下文切换过程中,CPU会停止处理当前运行的程序,并保存当前程序运行的具体位置以便之后继续运行。PCB还经常被称作“切换桢”。“页码”信息会一直保存到CPU的内存中,直到他们被再次使用。上下文切换是存储和恢复CPU状态的过程,它使得线程执行能够从中断点恢复执行上下文切换是多任务操作系统和多线程环境的基本特征。
  • 用 NodeJS 充分利用多核 CPU 的资源[每日前端夜话0xCB]
    每日前端夜话0xCA每日前端夜话,陪你聊前端。有时你可能需要启动 Node.js 进程集群来利用本地计算机或生产服务器上的每个 CPU 内核。幸运的是,Node.js 有一个名为 Cluster 的核心模块,它能够帮助我们在 CPU 的所有核心上运行 Node.js 程序。在本文中,我们将会用 Node.js 实现一个 ExpressJS HTTP 服务器,并在每个 CPU 内核上创建一个唯一的实例。如果你已经有了一个可用的 ExpressJS 服务器,则可以跳至下一部分:在多核 CPU 上运行服务器。为了帮助我们实现这一目标,我们将使用Node.js模块 OS 和 Cluster 。然后,我们创建一个名为 clusterWorkerSize 的变量来表示系统的 CPU 数量。
  • VMware vSphere 服务器虚拟化部署安装图解 | 资料
    在虚拟化项目中,内存比CPU更重要。在使用VMware vSphere实施虚拟化项目时,一个推荐的作法是将VMware ESXi安装在服务器的本地硬盘上,这个本地硬盘可以是一个固态硬盘,也可以是一个SD卡,甚至可以是1GB的U盘,如果服务器没有配置本地硬盘,也可以从存储上为服务器划分8~16GB的分区用于启动。
  • 面试官问:为什么 Java 线程没有 Running 状态?我懵了
    与传统的running状态的区别有人常觉得 Java 线程状态中还少了个 running 状态,这其实是把两个不同层面的状态混淆了。对 Java 线程状态而言,不存在所谓的running 状态,它的 runnable 状态包含了 running 状态。通常,Java的线程状态是服务于监控的,如果线程切换得是如此之快,那么区分 ready 与 running 就没什么太大意义了。当然,对于精确的性能评估而言,获得准确的 running 时间是有必要的。JVM 本身没有做什么实质的调度,把底层的 ready 及 running 状态映射上来也没多大意义,因此,统一成为runnable 状态是不错的选择。我们将看到,Java 线程状态的改变通常只与自身显式引入的机制有关。
  • 你不得不知的 top 命令技巧
    在 Linux 操作系统上, top 命令:主要用于实时显示 process 的动态。那么,如下几个你所不知道的技巧,可大大提高你的工作效率。终端下执行命令:top,然后按下键盘上的某个键位,top 命令将会有不同的效果进行展示;1:显示每个 CPU 的运行情况。可以看到设备上有多少个 CPU,设备台数多的话将会被占满整个屏幕;z:进入高亮模式,将显示红色终端字体。再次按z可还原到最原始的终端字体;b:高亮显示正在运行的命令,s 为 R 的进程;c:显示 COMMAND 列的所有信息,包括一些参数;t:更直观的方式展示 task/cpu 信息;m:更置换的方式展示 mem 信息;M:根据内存的使用率进行排序。
  • 腾讯成本优化黑科技:整机CPU利用率最高提升至90%
    腾讯TLinux团队提出了一套全新的混部方案,在不影响在线业务的前提下,对整机CPU利用率提升效果非常明显,在有的业务场景下,整机CPU利用率甚至能提升至90%。试想一下,如果能让整机的CPU利用率翻一翻,是什么概念?因此,各BG各业务都在想办法提升整机CPU利用率。本文将围绕如何提升整机CPU利用率这个问题来展开,重点关注以下三个问题:现有混部方案如何做?period/quota是可以控制单位时间内某个cgroup占用CPU的时间。并且对负载均衡做了深入的优化,从而达到提升整机CPU利用率的目的。因为cfs调度类的优先级高于idle调度类的优先级。
  • 最全GPU技术架构知识介绍
    GPU缩写为Graphics Processing Unit的,一般称为视觉处理单元。现代的GPU对图像和图形处理是十分高效率的,这是因为GPU被设计为很高的并行架构这样使得比通用处理器CPU在大的数据块并行处理算法上更具有优势。因此CPU和GPU架构差异很大,CPU功能模块很多,能适应复杂运算环境;GPU构成则相对简单,目前流处理器和显存控制器占据了绝大部分晶体管。图2-1 CPU和GPU架构从硬件设计上来讲,CPU 由专为顺序串行处理而优化的几个核心组成。
  • 等待的艺术:从Spin Lock到Token Bucket算法
    说白了spin lock只是一个忙等待的循环,看似低效,但在kernel和各种高性能库中却应用广泛。// 一个最简单的spin lock实现std::atomic<bool> lock_{false};void lock() { while { while ; if (!保证临界区安全性前提是:临界区内的代码必须严格遵循sequential consistency。MCS spin lockMCS spin lock是学术界提出的一种spin lock改进版本,已被最新的Linux kernel采纳,目的是减少lock在不同cpu core之间的迁移,每个core都持有一个本地标志变量,每个core上的线程只在本地变量自旋,通过一个全局的链表将这些waiters串联起来。申请MCS spin lock时会得到前置锁拥有者的锁结构体指针,
活跃用户
《科技日报》是富有鲜明科技特色的综合性日报,是面向国内外公开发行的中央主流新闻媒体,是党和国家在科技领域的重要舆论前沿,是广大读者依靠科技创造财富、提升文明、刷新生活的服务平台,是中国科技界面向社会、连接世界的明亮窗口。
《中国银行保险报》是中国银行保险监督管理委员会主管唯一工作日报。
数字生活家,手机新娱乐
专业的中文 IT 技术社区,与千万技术人共成长。
数字公民的糖
腾讯新闻旗下腾讯科技官方账号,在这里读懂科技!
凤凰科技频道官方账号,带你直击真相。
TechWeb专注于互联网消费领域,每日专业提供互联网产品、智能设备及互联网服务等方面的最新资讯。
从思考,到创造
让创业者不再孤独@i黑马
《环球科学》杂志官方帐号 www.huanqiukexue.com
用极客视角,追踪你最不可错过的科技圈。有快闻、也有洞见;有脑洞、也有思考。
雷锋网,读懂智能&amp;未来。
36氪是中国领先的新商业媒体,提供新锐深度的商业报道。我们强调趋势与价值,我们的slogan是:让一部分人先看到未来。
最好的中文人物报道
笑谈开发轶事,品味程序人生。
可能是最会用故事讲解技术本质的公众号!
以通俗易懂的方式讲解数据结构与算法、计算机网络,计算机基础等编程知识。
程序员职业规划:职场晋升之路;探讨程序员转化转管理之路。程序员学习管理之道:团队管理、项目管理、管理工具的推荐和使用经验。
促进软件测试领域知识的传播