资源限制的挑战

it2023-10-30  77

资源限制的挑战

什么是资源限制?

资源限制是指在进行并发编程时,程序的执行速度受限于计算机硬件资源或软件资源。例如服务器宽带只有两兆每秒。某个资源的下载速度是一兆每秒系统启动十个线程下载资源,下载速度不会是10m/s,所以在进行并发编程时要考虑这些资源的限制,硬件资源限制带有框带着的上传下载速度。磁盘读写速度和CPU的处理速度,软件资源限制,有数据库的链接书和socket链接数等

资源限制引发的问题

在并发编程中间代码执行速度加快的原则,事件代码中,创新执行的部分变成并发执行。倒是如果监保段了创新的代码并发执行,因为受限于资源。仍然在创新执行,这时,程序不仅不会加快执行,反而会更忙,因为增加了上下文切换和资源调度的时间。例如,之前看到一个程序使用多线程在办公网络并发下载和处理数据时,导致CPU利用率达百分之百,几个小时都不能运行完成任务。后来修改成当现场一个小时就执行完成了。

如何解决资源限制的问题?

对于硬件资源的限制,可以考虑使用集群并行执行程序,既然当地的资源有限,那么就让程序在多台机器上运行。比如使用ODPS,还都破获自己搭建的服务器集群。不同的机械处理的不同的数据。可以通过数据id%机器数。计算得到一个机器编号,然后由对应编号的机器处理这笔数据。对于软件资源的限制,可以考虑使用资源池间资源复用,比如使用链接指尖数据库和socket链接复用。或者再调用对方我把service接口获取数据时只建立一个链接。

在资源限制情况下进行并发编

如何在资源限制的情况下让程序执行的更快,方法就是根据不同的资源调整。程序的并发度,例如下载文件上去一那两个资源,宽带和硬盘读写速度。有数据库操作时涉及数据库链接数,如果烧烤语句执行非常快而现成的。数量比数据库链接数大很多。则某些线程会被阻塞,等待数据库链接。

最新回复(0)