「软件」后端开发术语大全( 五 )


5. 内存溢出/内存泄漏

  • 内存溢出:内存溢出(Out Of Memory)指程序申请内存时 , 没有足够的内存供申请者使用 , 或者说 , 给了你一块存储int类型数据的存储空间 , 但是你却存储long类型的数据 , 那么结果就是内存不够用 , 此时就会报错OOM,即所谓的内存溢出 。
  • 内存泄漏:内存泄漏(Memory Leak)指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放 , 造成系统内存的浪费 , 导致程序运行速度减慢甚至系统崩溃等严重后果 。
6. 句柄泄漏句柄泄漏是进程在调用系统文件之后 , 没有释放已经打开的文件句柄 。 一般句柄泄漏后的现象是 , 机器变慢 , CPU飙升 , 出现句柄泄漏的cgi或server的CPU使用率增加 。
7. 死锁死锁是指两个或两个以上的线程在执行过程中 , 由于竞争资源或者由于彼此通信而造成的一种阻塞的现象 , 若无外力作用 , 它们都抑制处于阻塞状态并无法进行下去 , 此时称系统处于死锁状态或系统产生了死锁 。
8. 软中断/硬中断
  • 硬中断:我们通常所说的中断指的是硬中断(hardirq) 。 由与系统相连的外设(比如网卡、硬盘)自动产生的 。 主要是用来通知操作系统系统外设状态的变化 。
  • 软中断:1、通常是硬中断服务程序对内核的中断;2、为了满足实时系统的要求 , 中断处理应该是越快越好 。

linux为了实现这个特点 , 当中断发生的时候 , 硬中断处理那些短时间就可以完成的工作 , 而将那些处理事件比较长的工作 , 放到中断之后来完成 , 也就是软中断(softirq)来完成 。
9. 毛刺在短暂的某一刻 , 服务器性能指标(如流量、磁盘IO、CPU使用率等)远大于该时刻前后时间段 。 毛刺的出现代表这服务器资源利用不均匀 , 不充分 , 容易诱发其他更严重的问题 。
10. 重放攻击攻击者发送一个目的主机已接收过的包 , 来达到欺骗系统的目的 , 主要用于身份认证过程 , 破坏认证的正确性 。 它是一种攻击类型 , 这种攻击会不断恶意或欺诈性地重复一个有效的数据传输 , 重放攻击可以由发起者 , 也可以由拦截并重发该数据的敌方进行 。 攻击者利用网络监听或者其他方式盗取认证凭据 , 之后再把它重新发给认证服务器 。
11. 网络孤岛网络孤岛指集群环境中 , 部分机器与整个集群失去网络连接 , 分裂为一个小集群并且发生数据不一致的状况 。
12. 数据倾斜对于集群系统 , 一般缓存是分布式的 , 即不同节点负责一定范围的缓存数据 。 我们把缓存数据分散度不够 , 导致大量的缓存数据集中到了一台或者几台服务节点上 , 称为数据倾斜 。 一般来说数据倾斜是由于负载均衡实施的效果不好引起的 。
13. 脑裂脑裂是指在集群系统中 , 部分节点之间网络不可达而引起的系统分裂 , 不同分裂的小集群会按照各自的状态提供服务 , 原本的集群会同时存在不一致的反应 , 造成节点之间互相争抢资源 , 系统混乱 , 数据损坏 。
监控告警
1. 服务监控服务监控主要目的在服务出现问题或者快要出现问题时能够准确快速地发现以减小影响范围 。 服务监控一般有多种手段 , 按层次可划分为:
  • 系统层(CPU、网络状态、IO、机器负载等)
  • 应用层(进程状态、错误日志、吞吐量等)
  • 业务层(服务/接口的错误码、响应时间)
  • 用户层(用户行为、舆情监控、前端埋点)
2. 全链路监控