目录
背景
隔壁业务组系统是简单的主从结构,写索引的服务(主)叫primary, 读索引并提供搜索功能的服务(从)叫replica。业务线同步数据并不是平滑的,在同步数据时primary瞬间负载上升,磁盘写IO增加,这是合理的。
primary 写完索引,会马上触发索引的同步操作,因此,瞬间的磁盘读IO增加以及网络流量的增加都是合理的。
问题
在节假日高峰期前期,团队增加了50%的replica服务器,这造成了primary的同步压力进一步增加,观测系统监控,发现了“吃swap”的现象,这就不合理了,需要分析优化。
这里简单解释下“吃swap”:
在计算机系统中,"吃swap"指的是系统开始使用交换空间(swap space)来补充物理内存(RAM)的不足。交换空间是一块预留在磁盘上的区域,用于存储那些当前不常用的内存数据。当物理内存不足时,操作系统会将一些数据从内存中移到交换空间,以腾出内存给其他需要的进程。
具体来说,“吃swap”通常表示以下几种情况:
- 内存不足:系统的物理内存已经被用完,导致操作系统不得不使用交换空间来存储数据。
- 性能下降:因为磁盘的读写速度远低于内存的读写速度,当系统频繁访问交换空间时,性能会显著下降。用户可能会注意到系统变得响应缓慢。
- 高负载场景:在高负载场景下,如大量的索引写入和同步操作,内存需求突然增加,导致系统不得不使用swap。
以上描述的情况下,primary服务器在索引写入和同步操作的高负载下,内存不足