我有一些服务器,我们运行了很多东西。他们经常承受太多负担,容易崩溃。
我有一个Ruby程序,它是另一个Ruby程序的包装器。包装器生成一个运行主Ruby脚本的线程,该脚本调用另一个可能需要10-20秒才能返回响应的服务,因此它不会主动处理。它为每个参数执行此操作,因此在最坏的情况下,它一次执行60个。
我认为这不会引起太大的问题,因为线程毕竟在等待IO,但创建60个运行其他Ruby脚本的线程似乎正在造成损失,通常是超时或冲洗服务器。我猜那里有一些开销?也许我没有说明Linux必须在内部为每个bash和Ruby实例做什么?
我认为自己是一个Linux新手,因为很多内部人员对我来说仍然是神奇的。有人可以解释为什么我的方法是愚蠢的,我会更好地限制自己10个线程或在我的循环中创建线程的第二个延迟?创建bash环境以在Ruby中运行外部命令需要多少开销?我是否会更好地连续使用几个命令创建命令以减少开销?
提前致谢