1 数据库
Working size超过可用内存
Working Size怎么理解?肯定不是指数据库的大小,应该是在保证业务指标——响应时间、QPS的情况下,数据库使用的内存大小。其超过可用内存后的直接影响就是系统开始使用“swap”,从而大大降低DB的性能。所以,DB服务器要有充足的内存。
长查询和短查询
指运行时间很长和很短的查询。运行时间很长的查询,要是么很消耗内存、CPU,比如联合查询,要么是很消耗磁盘I/O,比如没有用到索引的“遍历”——这应该算是“事故”。长查询对“DB性能”的影响是显而易见的。而短查询呢?
写冲突(需要用锁的场景)
写冲突的场景,通常会遇到“锁”,如MyISA的“表锁”,与InnoDB的“行锁”,当遇上“锁”时,只能有一个“用户”在写,其他用户均需要等待。当有大量的冲突时,用户需要等待的时间就越长,“锁”机制会导致CPU的有效利用率大大下降——花在“获取锁”上的CPU时间变多,从而导致DB可用的有效CPU时间变少,性能下降。
大量的Join操作消耗内存
Join操作本身比较消耗内存和CPU,尽可能不用或少用。

2 虚拟化
共享磁盘,磁盘随机读严重
虚拟化场景,使用共享磁盘(HDD),磁盘会成为瓶颈。磁盘差不多是计算机上最慢的设备了。随机I/O能力极差。
网络I/O波动
因为虚拟化场景同一台物理机上的多个VM之间的网络是共享的,会互相影响。

3 程序
线程:死锁,与“事件驱动型”(方案)相比过重,debug,非线性扩展,等等
事件驱动编程:回调的复杂度,如何保存函数状态,等等
缺乏“profiling”、跟踪、日志机制。
耦合严重,单独故障,不可水平扩展,等等
有状态的应用(不易水平扩展)
糟糕的设计:开发都开发了一个程序,在自己的电脑上运行良好;到了生产环境,对于两三个用户,也运行良好。等到数月、数年过后,用户量上来以后,程序不能运行了,需要重构、重写。
算法复杂性
依赖其他服务,比如DNS查询以及其它,你可会被阻塞。
栈空间

4 磁盘
本地磁盘访问
随机磁盘I/O(引发大量磁盘寻道)
磁盘碎片(增加寻道机会和时间)
当写入数据量超过SSD空间量以后,SSD性能的下降

5 操作系统
Fsync flushing, linux buffer cache filling up
TCP Buffer过小
文件句柄限制
功率分配(CPU节能?)

6 缓存
不使用Memcached(数据库前端)
HTTP:headers,etags,不压缩,等等
不充分利用浏览器的缓存
字节码缓存(比如PHP的APC)
处理器的L1/L2缓存:这是一个重要的“瓶颈”。保持重要的热数据在L1/L2缓存中。这个关系到方方面面太广,

7 处理器
CPU超载
上下文切换->一个核上太多线程,这可能是因为“坏运气”或者是Linux调度器;太多系统调用,等等
I/O等待->所有CPU以相同的速度在等待(同时等待)
CPU缓存:未完……
主板能力(其它限制CPU性能的因素)

8 网络
网卡最大带宽,IRQ饱和,软中断用光CPU资源
DNS查询
丢包
意外路由
网络磁盘访问(比如NFS, drbd)
共享SANs
服务故障->服务不响应

9 进程
测试时间
程序调试时间
团队大小
预算
代码“欠债”

10 内存
OOM->杀进程,使用交换甚至导致死机
OOM导致磁盘超负荷(因为swap)
内存管理库极限
内存碎片
Java中会导致GC停顿,速度变慢
C中,导致malloc()分配内存变慢

常见的10种“瓶颈”相关推荐

  1. 压力表负值表示什么_压力表常见的10种故障分析和修理方法

    压力表常见的 10 种故障分析和修理方法 一.压力表误差成比例地增加或减少如何调整 故障原因:主要是传动比发生了变化. 只要移动示值调节螺钉, 就能解决. 压力表误差逐渐增大时, 将示值调节螺钉往右( ...

  2. 最常见的 10种网络安全攻击类型

    网络攻击是指旨在针对计算机或计算机化信息系统的任何元素更改.破坏或窃取数据以及利用或损害网络的行为.随着近年来越来越流行的业务数字化,网络攻击一直在增加.虽然有几十种不同类型的攻击,但网络攻击列表包括 ...

  3. 计算机病毒常见病状,电脑中病毒常见的10种症状

    电脑中病毒常见的10种症状 计算机中了病毒有什么症状呢?下面是小编收集的资料,希望大家喜欢! 电脑中病毒的症状(一)文件或文件夹无故消失: 当发现电脑中的部分文件或文件夹无缘无故消失,就可以确定电脑已 ...

  4. 深度学习中常见的10种激活函数(Activation Function)总结

    目录 一:简介 二:为什么要用激活函数 三:激活函数的分类 四:常见的几种激活函数 4.1.Sigmoid函数 4.2.Tanh函数 4.3.ReLU函数 4.4.Leaky Relu函数 4.5.P ...

  5. NLP入门+实战必读:一文教会你最常见的10种自然语言处理技术

    转载自:https://www.sohu.com/a/203314063_308467 作者:大数据文摘 自然语言处理(NLP)是一种艺术与科学的结合,旨在从文本数据中提取信息.在它的帮助下,我们从文 ...

  6. 区块链游戏常见的 10 种分类

    区块链游戏表面上与现有的游戏玩法并无二致,但是有了区块链的加持,玩家能够拥有独一无二的真正属于自己的数字资产,并且更加安全. 现阶段大体可以将区块链游戏分为四大类:以太坊游戏.链克游戏.公有链游戏和私 ...

  7. 【跨境干货】欧洲收款常见的10种支付方式

    在欧洲,许多外贸商家大多会选择PayPal和国际信用卡支付,但从安全角度来看,不管是PayPal还是信用卡都是会有拒付风险.所以除此之外,小编另多介绍一种本地支付的收款方式,就是用各国家当地流行的支付 ...

  8. 最常见的10种Java异常问题!

    封面:洛小汐 译者:潘潘 前言 本文总结了有关Java异常的十大常见问题. 目录 检查型异常(checked) vs. 非检查型异常(Unchecked) 异常管理的最佳实践箴言 为什么在try代码块 ...

  9. golang-文章翻译-go常见的10种错误

    文章目录 一.枚举默认值和json反序列化 二.BenchMarking和内联 三.每次传参都应该用指针吗? 四.break和条件控制语句 五.错误管理 六.数组初始化 6.1 len 和 cap 6 ...

  10. 移动端App广告常见的10种形式

    什么是App广告? App广告,或称In-App广告,是指智能手机和平板电脑这类移动设备中第三方应用程序内置广告,属于移动广告的子类别. App广告兴起得益于其载体-App的风行.平板电脑和大屏触摸手 ...

最新文章

  1. 正则重温(学习笔记)
  2. logstash redis kafka传输 haproxy日志
  3. ThinkPHP整合百度Ueditor图文教程
  4. ruby array_Ruby中带有示例的Array.shuffle方法
  5. 邮件服务器两种协议,邮件服务器协议
  6. LeetCode--41.缺失的第一个正数(C)
  7. linux shell 批量清空,shell脚本批量删除docker镜像
  8. SAP中文件的上传和下载
  9. 一分钟快速了解内网穿透软件有哪些
  10. mac开启HiDPI
  11. 武大计算机专硕和学硕,专硕与学硕,到底有什么区别?
  12. 笔记本打印机显示服务器脱机,打印机显示脱机状态怎么办 打印机显示脱机状态解决方法【详解】...
  13. vue-cli-service build 如何环境设置,打出不同环境的包
  14. Pytorch中的einsum
  15. C# 模拟鼠标移动和点击(转载)
  16. Linux下实现聊天室
  17. java非必传参数怎么处理_SpringBoot 设置传入参数非必要的操作
  18. Flutter Card使用
  19. 排障集锦:九九八十一难之第十三难!-------------史上最全MySQL 单实例故障排查
  20. linux启动进程 c,Linux启动新进程的三种方法

热门文章

  1. NOI2015 小园丁和老司机
  2. USACO 2016 JANUARY CONTEST, BRONZE PROBLEM 3. MOWING THE FIELD(收割庄稼)
  3. java编写程序防止电脑屏幕休眠
  4. 《高效能程序员的修炼》一磨刀不误砍柴工
  5. 微型计算机硬件系统包括什么,微型计算机硬件系统由什么组成(6个基本组成部件)...
  6. opengles加载obj格式3D模型含光照和纹理
  7. 最佳学习方法(10)学习方法介绍
  8. Android利用NotificationListenerService实现消息盒子功能
  9. 手机自动休眠与距离感应器失效的问题
  10. 计算机专业大学分数线低的,成绩徘徊在985、211分数线边缘,这4所大学考上容易,退档率极低...