.NET  开发注意 线程安全性问题.弄不好可能会导致CPU满载 特别主要 Dictionary作为静态变量使用的情况. 解决方法: Dictionary 换成  ConcurrentDictionary 例如下图: 下面是参考网上的相关资料: 一.背景 先说下windbg使用场景.各位coder在工作中或多或少都会遇到下面四种情况 1.本地代码好好的,放服务器上运行一段时间后,IIS服务突然占用 w3wp.exe CPU突然100% ,不得不回收应用程序池,如果哪次回收晚了,被客户发现,后果很…
一.背景 先说下windbg使用场景.各位coder在工作中或多或少都会遇到下面四种情况 1.本地代码好好的,放服务器上运行一段时间后,IIS服务突然占用 w3wp.exe CPU突然100% ,不得不回收应用程序池,如果哪次回收晚了,被客户发现,后果很痛苦~ 2.你的w3wp.exe 内存高居不下 并且逐步上升 3.cpu很低,内存也很低,但你的网页打开却越来越慢,而你该做的优化都做过了,却没有任何效果.. 4.你的程序本地运行好好的,但是到服务器上了,在某个时候会突然报错,再次刷新却又好了.…
MySQL Online DDL导致全局锁表案例分析 我这边遇到了什么问题? 线上给某个表执行新增索引SQL, 然后整个数据CPU打到100%, 连接数暴增到极限, 最后导致所有访问数据库的应用都奔溃. SQL如下: ALTER TABLE `book` ADD INDEX `idx_sub_title` (`sub_title` ASC); 能看到什么? '10063293', 'root', '10.0.0.1:35252', 'novel', 'Query', '50', 'Waiting…
系统导出数据到excel,数据量过大(大约10W)条,导致服务器 cpu 100%解决方法…
蒋彪,腾讯云高级工程师,10+年专注于操作系统相关技术,Linux内核资深发烧友.目前负责腾讯云原生OS的研发,以及OS/虚拟化的性能优化工作. 导语 云原生场景,相比于传统的IDC场景,业务更加复杂多样,而原生 Linux kernel 在面对云原生的各种复杂场景时,时常显得有些力不从心.本文基于一个腾讯云原生场景中的一个实际案例,展现针对类似问题的一些排查思路,并希望借此透视Linux kernel的相关底层逻辑以及可能的优化方向. 背景 腾讯云客户某关键业务容器所在节点,偶发CPU sys…
[问题] 最近有台服务器比较频繁的CPU报警,表现的特征有CPU sys占比偏高,大量慢查询,大量并发线程堆积.后面开发对insert的相关业务限流后,服务器性能恢复正常. [异常期间线程处理情况] 下图是当时生产环境异常时抓取的信息,该事务正在执行insert,已经执行5秒,线程运行在innodb内核,状态是thread declared inside InnoDB,还有4906 tickets可用 统计了下有64个线程在innodb层,同时看到还有280个线程在排队等待进入innodb线程,…
项目背景 有三张百万级数据表 知识点表(ex_subject_point)9,316条数据 试题表(ex_question_junior)2,159,519条数据 有45个字段 知识点试题关系表(ex_question_r_knowledge)3,156,155条数据 测试数据库为:mysql (5.7)   1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 案例分析: SELECT ex_question_junior.QUESTIO…
性能分析小案例系列,可以通过下面链接查看哦 https://www.cnblogs.com/poloyy/category/1814570.html 系统架构背景 VM1:用作 Web 服务器,来模拟性能问题 VM2:用作 Web 服务器的客户端,来给 Web 服务增加压力请求 使用两台虚拟机(均是 Ubuntu 18.04)是为了相互隔离,避免交叉感染 VM2 运行 ab 命令,初步观察 Nginx 性能 简单介绍 ab 命令 ab(apache bench)是一个常用的 HTTP 服务性能测…
对于IIS 管理员来说,经常会碰到 Web 服务器 CPU 占用 100% 的情况,以下是个人的日常工作总结和一些解决办法,主要用来剖析 w3wp.exe(IIS )  占用 CPU 100% 的一些原因 和解决方案,希望能对你有所帮助 w3wp.exe的解释 : 全名,IIS Application Pool Process. w3wp.exe是IIS工具的一部.w3wp.exe是在IIS(因特网信息服务器)与应用程序池相关联的一个进程,如果你有多个应用程序池,就会有对应的多个w3wp.exe…
以前项目中遇到类似业务,但使用的是CurrentHashMap,看到这篇文章,转载记录,警示自己. 以下内容转自: 转载自并发编程网 – ifeve.com(http://ifeve.com/hashmap-infinite-loop/) -------------------------------------分割线----------------------------------------------------------------- 因最近hashmap误用引起的死循环又发生了一些…
原文:https://blog.csdn.net/ydyang1126/article/details/72820349 linux top命令中各cpu占用率含义 0 性能监控介绍 1 确定应用类型 2 确定基准线统计 0 安装监控工具 0 CPU 介绍 1 上下文切换 2 运行队列 3 CPU 利用率 0 CPU 性能监控 1 vmstat 工具的使用 2 案例学习持续的CPU 利用率 3 案例学习超负荷调度 4 mpstat 工具的使用 5 案例学习 未充分使用的处理量 6 结论 linu…
[现象] 最近有台服务器晚上CPU告警,系统抓取的故障期间的snapshot显示CPU %sys较高,同时context switch在300K以上. 是否过高的context switch引起的%sys消耗呢,做了下面的测试,来验证context switch与CPU %sys之间有没有直接的关系. [测试] 用mysqlslap并发100个线程执行select 1语句,可以看到QPS压到15W context switch已经达到300K左右,但CPU 的%sys在3%左右,并没有导致过高的…
什么是CPU 上下文 我们都知道,Linux是一个多任务操作系统,它远支持大于CPU数量的任务同时运行,当然,这些任务实际上并不是真的在同时运行,而是因为系统在很短时间内,将CPU轮流分配给他们,造成多任务同时运行的错觉. 而在每个任务运行前,CPU都需要知道任务从哪里加载.又从哪里开始运行.也就是说,需要系统事先帮它设置好CPU寄存器和程序计数器(Program Counter.PC). CPU寄存器,是CPU内置的容量小.但速度极快的内存.而程序计数器,则是用来存储CPU正在执行的指令位置.…
中午吃完饭回来,刚想眯一会,突然发现公司预警群报警,某台机器CPU100%,连续三次报警,心里咯噔一下,我新开发的程序就在这上面,是不是我的程序导致的?立马远程,oh my god,果然是. 二话不说,抓紧抓dump,由于是生产环境,所以只抓了两个dump,中间间隔一分钟,立马程序重启. 首先,这个程序从发布以来,cpu从来没有占用如此之高,已经稳定运行近一周时间,期间出现的内存暴涨问题也是由于业务垃圾数据未及时清理,那么唯一的可能性就是早上为了方便查看运行状态,增加的一个小功能导致的,凡事都要…
昨天服务器的CPU突然100%,此服务已经运行几年了,都平安无事.既然问题出现当然要找出这个遗留多年的小概率问题.出现cpu 100% 一般就是哪里出现了无法跳出的死循环. 1.获取进程的内存信息 服务器使用的window server 直接右键创建转储文件即可.这个直接点点的方式是使用window server最方便的地方(^_^). 2.加载内存文件信息 将文件复制本地,直接拖拽到windbg中.(windbg直接在window 应用商店下载即可) 3.获取进程内耗时线程 在0:000 输入…
NIO的epoll空轮询bug - Lost blog - 博客园 https://www.cnblogs.com/JAYIT/p/8241634.html NIO的epoll空轮询bug   JDK NIO的BUG,例如臭名昭著的epoll bug,它会导致Selector空轮询,最终导致CPU 100%.官方声称在JDK1.6版本的update18修复了该问题,但是直到JDK1.7版本该问题仍旧存在,只不过该BUG发生概率降低了一些而已,它并没有被根本解决.该BUG以及与该BUG相关的问题单…
PostgreSQL CPU满(100%)性能分析及优化 转自:https://help.aliyun.com/knowledge_detail/43562.html    在数据库运维当中,一个DBA比较常遇到又比较紧急的问题,就是突发的CPU满(CPU利用率达到100%),导致业务停滞.遇到CPU满,往往需要从后端数据库开始排查,追溯到具体SQL,最终定位到业务层.下面是这个问题具体的处理方法. 查看连接数变化 CPU利用率到达100%,首先怀疑,是不是业务高峰活跃连接陡增,而数据库预留的资…
原文:MySQL SYS CPU高的案例分析(一) [现象] 最近关注MySQL CPU告警的问题时,发现有一种场景,有一些服务器最近都较频繁的出现CPU告警,其中的现象是 SYS CPU占比较高. 下面的截图来源于“MySQL CPU报警”采集的文件 [问题分析] 可以分析出这服务器CPU升高的原因是由于表的高并发写入引起.优化方案通常是通知开发停止写入或降低写入频率. 究竟是什么原因导致高并发写入时CPU sys的占比这么高. 从采集的[Perf Stat]指标看到CPU有大量消耗是集中ke…
今天遇到一起ORACLE数据库宕机案例,下面是对这起数据库宕机案例的原因进行分析.解读.分析过程中顺便记录一下这个案例的前因后果,攒点经验值,培养一下分析.解决问题的能力. 案例环境:   操作系统 :Oracle Linux Server release 5.7 64 bit 数据库版本:Oracle Database 10g Release 10.2.0.4.0 - 64bit Production 案例分析: 收到告警去检查数据库时,发现实例已经宕机.检查告警日志,发现下面错误信息: OR…
Linux系统cpu 100%修复案例 ​阿里云技术支持团队:完颜镇江 案例背景: Linux主机连续三天CPU% 处理思路: 1.  登录服务器查看/var/log/messages+/var/log/messages.1+/var/log/messages.3里恰好没那三天的日志 2.  dmesg里也无有用的信息 ​ 3.  至此怀疑是被攻击了,自然而然的去看对应时间点的带宽占用情况,查看之后发现带宽一切正常,继续排查 4.  怀疑是某个程序的异常,首先的从web进程开始查,通过httpd…
引起 w3wp.exe(IIS ) Cpu 占用 100% 的常见原因如下: 1. Web 访问量大,从而服务器压力大而引起的 2. 动态页面(.aspx)的程序逻辑复杂程度 3. 页面程序中有死循环 4. Http方式下载的站点 5. 服务器资源不会自动释放 6. 对 IIS 日志文件操作 解决办法: 1. 快速定位到出问题的站点 利用iisapp -a 命令,快速的定位到出问题的站点. 2. 重启 IIS 和 应用程序池 3. 给页面加上页面级别缓存 如果Web 是 Asp.Net 程序,那…
原文:MySQL SYS CPU高的案例分析(二) 后面又做了补充测试,增加了每秒context switch的监控,以及SQL执行时各步骤消耗时间的监控. [测试现象一] 启用1000个并发线程的压测程序,保持压测程序持续运行,保持innodb_spin_wait_delay默认值不变 在10:17:14秒将innodb_spin_wait_delay值从默认值6调整为18,看到sys从40%降到20% TPS从1.7W增加到2W context switch从82W降到78W [测试现象二]…
做一个积极的人 编码.改bug.提升自己 我有一个乐园,面向编程,春暖花开 工欲善其事,必先利其器 00 本文简介 作为一名搞技术的程序猿或者是攻城狮,想必你应该是对下面这两个问题有所了解,说不定你在实际的工作或者面试就有遇到过: 第一个问题:Java死锁如何排查和解决? 第二个问题:服务器CPU占用率高达到100%排查和解决? 第三个问题:有哪些工具能够快速查看线程使用情况? 本文对这三个问题进行总结整理,通过实例演示讲解,精彩干货,不容错过啊! 前戏就这么多,高潮会很多,做好了,让我们直奔主…
背景 之前接手一个项目的时候,发现到处是 new Thread(()=>{ //do something }).Start(); 这么做的目的,无非是为了减少页面等待时间提高用户体验,把一些浪费时间的操作放到新线程中在后台运行. 问题 但是这样带来的问题是大量的创建线程,非常影响项目的性能,尤其是在一些大并发量访问的时候,经常导致后果是cpu 100%. 当然,如果你的项目到处是这样写的,然后,没挂,至少说明这个方法没几个人再用. 解决方法 于是下意识的想着给项目优化下, 第一想法是走队列,但是…
阿里云资深DBA专家罗龙九:云数据库十大经典案例分析 2016-07-21 06:33 本文已获阿里云授权发布,转载具体要求见文末 摘要:本文根据阿里云资深DBA专家罗龙九在首届阿里巴巴在线峰会的<云数据库十大经典案例分析>的分享整理而成.罗龙九以MySQL数据库为例,分析了自RDS成立至今,用户在使用RDS过程中最常见的问题,包括:索引.SQL优化.锁.延迟.参数优化.连接数.CPU.Iops.磁盘.内存等.罗龙九通过对十大经典案例的总结,还原问题原貌,给出分析问题的思路,旨在帮助用户在使用…
这段时间做一个SQL性能优化的案例分析, 整理了一下过往的案例,发现一个比较有意思的,拿出来给大家分享. 这个项目是我在项目开展2期的时候才加入的, 之前一期是个金融内部信息门户, 里面有个功能是收集各个上市公司的财报, 然后做各种分析, 数据图表展示, 使用的人数并不多, 仅百人左右. 2期打算面向行外用户, 刚开始预计同时在线人数不超过50, 就以50访问用户/秒的性能测试, 结果在把1期的图表类数据展示响应基本在5分钟左右, 属于严重不可用, 说说我们的服务器配置, 有2台网站前端承载用户…
案例分析 高性能硬件上的程序部署策略 例 如 ,一个15万PV/天左右的在线文档类型网站最近更换了硬件系统,新的硬件为4个CPU.16GB物理内存,操作系统为64位CentOS 5.4 , Resin作为Web服务器.整个服务器暂时没有部署别的应用,所有硬件资源都可以提供给这访问量并不算太大的网站使用.管理员为 了尽量利用硬件资源选用了64位的JDK 1 . 5 ,并通过-Xmx和-Xms参数将Java堆固定在12GB.使用一段时间后发现使用效果并不理想,网站经常不定期出现长时间失去响应的情况.…
Linux(2)---记录一次线上服务 CPU 100%的排查过程 当时产生CPU飙升接近100%的原因是因为项目中的websocket时时断开又重连导致CPU飙升接近100% .如何排查的呢 是通过日志输出错误信息: 得知websocket时时重新 连接的信息,然后找到原因 解决了. 当然这里幸好能通过日志大致分析出原因 那么我就在思考如果日志没有告诉任何信息 但线上CPU还是接近100%那么如何排查呢.所以学习了下排查过程. 通过查阅资料并实践后,这里总结了两种办法.第一种博客满天飞的方法…
5.1.案例分析 5.1.1.高性能硬件上的程序部署策略 假如一个15w/天左右的在线文档类型网站再准备更换硬件系统 新的硬件为4个CPU.16GB物理内存,操作系统为64为Cento是 Resin作为Web服务器 整个服务器暂时没有部署别的应用,所有的硬件资源都可以提供给这个访问量不大的网站使用 管理员未来尽量利用硬件资源选用64位JDK1.5 并且通过-Xmx和-Xms参数将java堆固定再12GB 使用一段时间后发现效果不理想,网站不定期出现长时间失去响应的情况 监控服务器运行状况发现失去…
问题: web服务器w3wp CPU占用率非常高,导致整个服务器CPU 100%占用,问题无法正常重现 解决方法: --问题尚未解决,此处记录目前的解决状态 1)下载windbg 参考https://blog.csdn.net/johnsonblog/article/details/8165861 最终的下载地址: http://download.microsoft.com/download/A/6/A/A6AC035D-DA3F-4F0C-ADA4-37C8E5D34E3D/setup/Win…