面试题答案
一键面试增加交换空间大小
- 适用场景:当系统内存不足,频繁出现内存分配失败,但服务器硬件支持增加交换空间时。例如,在某些临时突发高并发读写,内存需求短时间内超过物理内存容量的场景下,可临时增大交换空间来避免因内存不足导致MySQL进程崩溃。
调整交换优先级(swappiness)
- 降低swappiness值:
- 适用场景:适用于对MySQL性能要求极高,物理内存相对充足,但偶尔会出现内存紧张的场景。例如,线上业务高峰期,MySQL需要快速响应读写请求,此时降低swappiness值,可尽量让MySQL数据和索引保留在物理内存中,减少交换操作对性能的影响。
- 提高swappiness值:
- 适用场景:当物理内存确实不足,且业务对MySQL响应时间要求不是特别苛刻时。例如,一些数据处理的批处理任务,允许在一定程度上牺牲性能来保证系统整体的稳定性,可适当提高swappiness值,让系统更积极地使用交换空间。
使用tmpfs挂载
- 适用场景:适用于MySQL的临时表和缓存数据场景。比如,在高并发读写中,MySQL会频繁创建临时表来处理复杂查询。将临时表空间挂载到tmpfs(基于内存的文件系统),能显著提高临时表的读写速度,因为数据直接在内存中操作,避免了磁盘I/O。