免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 14711 | 回复: 4
打印 上一主题 下一主题

[进程管理] 【讨论帖】并发进程数与cpu 核数的关系 [复制链接]

论坛徽章:
3
CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-06-11 22:47 |只看该作者 |倒序浏览
项目打算采用多进程处理,计划在节点上同时启动多个程序处理任务,

目前节点配置基本都是4核,内存4G,那么我应该在每个节点启动多少进程数是合适的?

因为程序的任务会有大量的I/O,如果我启动4个任务,那可能会出现4个任务都在执行长四溅i/o,而导致CPU浪费

如果我启动到15个,又有可能出现系统内存不足,而导致系统频繁使用缓存,CPU占用急剧上升,I/O也出现瓶颈

1. 能否有指导方法,来设置合适的进程数

2. 由于进程使用涉及CPU,内存,I/O等资源,是不是只能通过验证的方法来找最佳进程数

论坛徽章:
1
拜羊年徽章
日期:2015-03-03 16:15:43
2 [报告]
发表于 2012-06-12 18:20 |只看该作者
不是任务的个数,重要的是,每个进程占cpu多少capacity, 多少memory;从资源的角度,而不是进程个数去考虑。

论坛徽章:
0
3 [报告]
发表于 2012-06-12 21:32 |只看该作者
本帖最后由 vupiggy 于 2012-06-12 14:47 编辑
xiaojianredhat 发表于 2012-06-11 15:47
项目打算采用多进程处理,计划在节点上同时启动多个程序处理任务,

目前节点配置基本都是4核,内存4G,那 ...


你的这个问题目前死没解!不同程序访问内存的模式都不尽相同,操作系统内部无法事先知道应用进程什么时候去访问一个内存块,访问过的内存会闲置多久(LRU 也就是个最不坏的选择,其实结果还是很糟糕),这是当前做 Work Load Manager 的公司面临的共同问题。别想了,智能的,机械化的算法设计超出你甚至你们公司的能力,还是靠经验吧。调度算法解决多资源共享竞争问题复杂得一塌糊涂,动态的伸缩并行执行进程以确保所有资源(CPU + RAM + I/O 设备)的优化使用,你要是想出来这么一个算法,恭喜,什么剑桥,斯坦福,麻省理工的博士学位你可以到手了。

论坛徽章:
0
4 [报告]
发表于 2012-06-12 21:40 |只看该作者
本帖最后由 vupiggy 于 2012-06-12 14:48 编辑

一个工程的解决方案可能是:为你预先知道某些占用内存少,CPU 密集的任务建一个队列,当你的主任务在等待 I/O 的时候调度这个队列里的任务运行,等主任务恢复醒来以后暂停那个夹塞的家伙,这种方式可以保证 CPU 的使用率高。前提是要有个历史记录机制侦测并保存哪些应用程序在什么规模的输入条件下占用多少资源到数据库里,以后提交任务的时候告诉内核,把历史记录反馈到调度算法影响其决策。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP