Solaris 内存架构与硬件地址转换层深度解析
1. 内存调度器
内存调度器在 Solaris 系统中起着关键作用,它主要负责管理系统内存的使用,确保系统的稳定运行。其工作机制涉及软交换和硬交换两种方式。
1.1 软交换
软交换是内存调度器的一种温和策略。当一个进程进入睡眠状态,并且睡眠时间达到或超过 maxslp 秒时,内存调度器会采取行动。它首先将该进程每个线程的线程结构交换出去,然后将该进程的所有私有内存页面换出。 maxslp 的默认值为 20 秒,并且可以根据系统的实际需求进行调整。
1.2 硬交换
硬交换则是在系统内存资源极度紧张时触发的更为激进的策略。当满足以下三个条件时,硬交换就会启动:
- 运行队列中至少有两个进程在等待 CPU 资源。
- 在连续 30 秒内,系统的平均可用内存始终低于 desfree 设定的值。
- 系统出现过度分页的情况,即页面换出和换入的总和超过了 maxpgio 。
当硬交换被触发时,系统会采取一系列措施来释放内存。首先,内核会卸载所有当前未处于活动状态的模块和缓存内存,然后按顺序将进程交换出去,直到系统的可用内存达到期望的水平。
以下是影响内存调度器的参数及其作用:
| 参数 | 对内存调度器的影响 |
| — | — |
| desfree | 如果系统平均可用内存连续 30 秒低于该值,内存调度器将被激活。 |
| maxslp | 在软交换过程中,内存调
超级会员免费看
订阅专栏 解锁全文
597

被折叠的 条评论
为什么被折叠?



