当前位置: 技术问答>linux和unix
linux服务器访问的人多了速度变慢
来源: 互联网 发布时间:2017-04-04
本文导语: 我编写了一个C++测试平台,通过浏览器上传cpp文件后,由服务器自动判对错,并将结果返回回去。服务器端用的是linux+tomcat+mysql,其中判对错的过程是启动一个进程去执行shell文件,在shell文件运行程序,将程序运行...
我编写了一个C++测试平台,通过浏览器上传cpp文件后,由服务器自动判对错,并将结果返回回去。服务器端用的是linux+tomcat+mysql,其中判对错的过程是启动一个进程去执行shell文件,在shell文件运行程序,将程序运行结果跟正确答案进行比对。访问的人少时还没有问题,当同时访问的人多了(也就五六十人),就需要等很长的时间才能得到结果,人一少,又恢复正常了。不知道具体是什么原因导致的,如何解决,恳请各位高手帮忙!
|
当然了... 跑shell是需要cpu的, 50-60个进程同时跑, 你得看看你的服务器配置了, 机器性能不好就换机器, 机器不够就加机器.
实在不行就上mq吧, 异步处理, 最后把运行结果入库就可以了, 没必要让用户页面卡死在那里.
不会用mq就写个server, tomcat把shell存一个文件, 把文件名用socket通知给server,然后server收到任务就排队,根据负载决定是否fork新的子进程执行处理,还要定时杀死超时的子进程,父子进程管道交换数据,最后由server父进程把结果通过DB线程池写入DB供前端查询。
实在不行就上mq吧, 异步处理, 最后把运行结果入库就可以了, 没必要让用户页面卡死在那里.
不会用mq就写个server, tomcat把shell存一个文件, 把文件名用socket通知给server,然后server收到任务就排队,根据负载决定是否fork新的子进程执行处理,还要定时杀死超时的子进程,父子进程管道交换数据,最后由server父进程把结果通过DB线程池写入DB供前端查询。