通过资源隔离(比如采用K8S不同的namespace并分配不同的租户quota)、优先级和抢占(采用不同的PriorityClass )、资源限制(不同的limit、request,quota等)、监控和自动化调整(如 Prometheus 和 Grafana ,结合HPA/VPA等)、队列和调度策略以及独立的存储和网络配置等手段,可以有效保障生产业务在大数据和生产业务混合部署环境中的稳定运行。合理配置和管理这些策略,能够确保生产业务不受大数据业务的干扰,实现资源的高效利用和系统的稳定性。
收起根据我们的实践,可以在宿主机的Linux kernel层面对低优的大数据作业资源使用进行压制,包括:
CPU抢占:当在线负载较低时,离线任务可以占用空闲的 CPU 资源,当在线负载高时,在线能快速抢占离线的CPU资源。
SMT抗干扰:当在线任务调度到某个逻辑CPU时,其对应的SMT上的离线任务会被立即驱逐,避免共享同一个物理CPU带来的干扰
内存QoS:当整机内存使用紧张的时候,优先回收离线任务使用的内存,而当回收后内存资源还不够的情况下,离线的任务会被优先驱逐
带宽分级:可以限制离线任务的网络带宽使用上限
Cache QoS:限制离线任务对L3 Cache和MBA的使用量
此外,还可以为节点上的低优作业资源使用总量进行限制,比如节点上所有低优作业使用的CPU不能超过节点CPU配置的40%。这方面需要对k8s的cgroup放置机制做改造,为低优作业创建单独的cgroup
收起在大数据和生产业务混合部署的情况下,为了保证生产业务不受大数据业务的干扰,可以采取以下手段和方法:
需要根据具体的场景和需求来选择和实施上述方法,综合考虑资源、性能、安全等因素,以达到保证生产业务不受大数据业务干扰的目的。