一个多任务服务,是做成单个exe好,还是分开各做成一个exe好?

wn0112 · · 1160 次点击
不会有多台机器 ,都就在一台机器上运行。 场景很小,就是一台机器上跑几个任务。 数据导入涉及到高频IO操作,不断读文件写入数据库。 放一个exe里,与分开运行,性能上会不会有差异? 都在同一台机器上 其它任务执行时,会不会影响Web_server的吞吐、响应等等?
#2
更多评论
依照你目前的说法比较笼统,没有一个定性的答案跟结果的。 具体的要拆分 还是放在一块儿,得看你项目 复杂度跟 程序具体的资源消耗。 从几个方面给你建议: 1. 程序若是计算密集型的服务,且需要有测试数据表明 单进程无法满足需求,那么这种情况必须要拆开成多机器 2. 若是IO密集型的, 若瓶颈是在 你自己的服务 那么可以 考虑拆分到多台机器 3. 从工程负责度方面考虑, 若你们人力资源足够 而且项目本身是大型项目而且计划按照按照微服务来设计,那么这种情况 也可以拆分。 4. 如果按照你说的 web server 跟定时任务来看,那么要看 两个服务是否 相互依赖性,比如不能同时停服升级之类的, 那么还是拆分。 5. 总的来说, 拆分与否 要按实际情况来看。 如果是小项目,而且功能并不复杂,不满足上述的4点 那么建议 还是放一块吧,毕竟维护成本低。
#1
<a href="/user/wn0112" title="@wn0112">@wn0112</a> 如果是io操作频繁那么瓶颈会是在 磁盘跟数据库。 放在一台机器如果高频IO操作 不论多个进程 还是单进程 都会有可能会影响其他的功能。 其他情况 基本上没什么影响。 多进程抢占CPU资源 并不一定比单线程效率高多少。 可能你需要考虑的问题是: 如有其中的单个任务需要 频繁重启, 这样放到一个进程的话 其他的任务也会停止, 这个印象需要考虑进去。
#3