问题标签 [resource-management]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
99 浏览

apache-spark - 阿帕奇火花。特定资源池

我有一个非常复杂的管道,可以对给定数据执行多种机器学习算法。其中一种算法使用 GPU 进行处理。我想以某种方式将集群的几个节点与可用的 GPU 单元区分开来,这样算法就只能在这些分区上运行。Spark可以吗?

我知道在一般计算环境中拥有特定资源或多或少是不常见的,但是这个算法偶尔会运行一次,并且在其他时间保持静止 - 我也想使用这些节点。

0 投票
1 回答
1143 浏览

java - 用spring初始化和释放全局资源

在我们的应用程序中,我们通常有一些在应用程序范围内使用的资源(实用程序),例如可能是 apache HttpClient,或者在我的情况下ConcurrencyUtils,它是一个实用程序类,用于管理所有线程池以用于cpu密集和io任务(添加一些调度程序用于反应流等......很多自定义的东西)。

现在,当我通过 spring 初始化我的上下文时,我必须做一些不自然的事情(为了初始化和销毁​​静态资源)

在此处输入图像描述

请注意,这ConcurrencyUtil只是一个没有用的假类,我们从不使用它,但我们使用静态方法,ConcurrencyUtils并且这个类只确保调用 init 和 destroy (我不知道如何确保在所有 bean 之后调用destroy销毁)...

在此处输入图像描述

那么我们如何在 spring 上下文创建任何 bean 之前和 spring 上下文释放其所有 bean 之后运行一段代码(并且本身即将被回收)?

用spring初始化和释放静态资源的正确方法是什么?

0 投票
1 回答
1343 浏览

docker - 在 Docker 中混合 cpu-shares 和 cpuset-cpus

我想运行两个具有以下资源分配的容器:

  • 容器“C1”:保留 cpu1,与 20 个 cpu-shares 共享 cpu2
  • 容器“C2”:保留 cpu3,共享 cpu2 与 80 cpu-shares

如果我以这种方式运行这两个容器:

我得到C1按预期占用100%的cpu1,但占cpu2的50%(而不是20%),C2按预期占用100%的cpu3和50%的cpu2(而不是80%)。

看起来 --cpu-shares 选项被忽略了。有没有办法获得我正在寻找的行为?

0 投票
1 回答
90 浏览

ios - ios Swift - 初始化许多 AVAudioPlayer 与许多字符串\路径

我正在开发一个应用程序,它有大约 500 种不同的短音频,每个都有自己的 mp3 文件。我正在使用 AVAudioPlayer 播放它们。音频不应同时播放。

我想到了几个选择:

  1. 初始化 500 个 AVAudioPlayers 对象,并在必要时为相关对象调用 play()
  2. 持有 1 个 AVAudioPlayer,并根据需要将其更改为指向相关文件。这需要消耗 500 个字符串并在运行时初始化其资源路径以进行重新初始化的文件名管理。(可能更难调试)
  3. 持有 500 条资源路径(半资源初始化)和 1 个为它们提供服务的 AVAudioPlayer

它的最佳做法是什么?

0 投票
2 回答
114 浏览

c++ - 在 C++ 中从另一个对象初始化对象

在我的项目中,我有可以从不同格式加载和重新加载的资源对象。加载算法在不同的 ResourceLoader 子类中实现。

Loader 以给定格式读取输入并初始化其目标 Resource 对象 R。Loader 存储在资源中,因此如果资源变得无效,它会使用存储的 loader 重新加载自身。

问题是加载器应该如何初始化资源?

  1. 公开所有 InternalData 字段。它授予客户对它们的访问权限,这是不好的。
  2. 让 Loader 成为 Resource 的朋友。每个特定格式的新加载器都将被添加到资源头中,从而扼杀可扩展性,并要求任何编写扩展的程序员接触基本代码。
  3. 为每个 InternalData 提供 setter。离公开它们不远了,因为任何客户端都可以更改它不能更改的数据。
  4. 提供 Resource::Setup(InternalData1, InternalData2, InternalDataN),或者将它们全部包装在某个结构中并传递该结构。与 3 相同。除了一次设置所有字段。

问题是资源类字段必须可以从可扩展的类集写入访问,并且必须不可访问以从客户端代码写入。有什么好的OOP解决方案吗?谢谢。

0 投票
0 回答
56 浏览

c++ - 对象析构函数超出范围时会自动被调用吗?

我正在阅读 Scott Meyers Effective C++,我有一个关于资源管理的问题。在书中,他建议应该使用 auto_ptr 对象来管理内存,因为它会在超出范围时自动调用它所指向的对象的析构函数。这是提供的示例:

他声称这可能是有问题的,因为可能会发生许多事情...会阻止该方法到达delete pInv(过早的返回语句、抛出的异常......)。这是他建议的代码

这是有效的,因为无论发生什么pInv都会在超出范围时被删除。

我的问题是:为什么pInv在第一个代码块中超出范围时不调用析构函数。过早的 return 语句不会将对象推出范围,或者这不是垃圾收集在 C++ 中的工作方式吗?

希望我已经很好地解释了我的困惑。提前致谢!

0 投票
1 回答
1077 浏览

c++ - 通用句柄类

我偶然发现了这个问题:Using unique_ptr to control a file descriptor。这std::unique_ptr并不适合一般手柄。更一般的课程也是如此

已经实现(也许在提升中),或者我应该自己动手。这个问题之前已经在 我应该使用 C++ 中的哪个包装类来进行自动化资源管理?,但现在我们有了 C++14,所以可以有更多的选择。

我还找到了以下建议:http ://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3677.html 。所以别人也想过这个问题。

0 投票
2 回答
6744 浏览

unityscript - 如何通过在 Unity 中单击按钮将对象添加到场景中?

我想知道如何使用按钮单击将对象带到场景中。

0 投票
0 回答
19 浏览

threadpool - 我应该增加线程池吗?

我看到几乎 99% 的线程处于停放/等待状态,1% 的线程用完大小为 100 的线程池。CPU 使用率为 25%,分配的 6 GB 内存中只有 2 GB。我应该增加线程池大小吗?我认为是这样,因为系统有足够的资源,更多的线程会适当地利用它来增加吞吐量。

0 投票
3 回答
7736 浏览

apache-spark - YARN 上的 Spark 使用的 vcore 太少

我在具有以下设置的 YARN 集群(HDP 2.4)中使用 Spark:

  • 1 个主节点
    • 64 GB RAM(50 GB 可用)
    • 24核(19核可用)
  • 5个从节点
    • 每个 64 GB RAM(50 GB 可用)
    • 每个 24 核(19 核可用)
  • 纱线设置
    • 所有容器(一台主机)的内存:50 GB
    • 最小容器大小 = 2 GB
    • 最大容器大小 = 50 GB
    • vcores = 19
    • 最小 #vcores/容器 = 1
    • 最大 #vcores/容器 = 19

当我使用命令 YARN 运行我的 spark 应用程序时,spark-submit --num-executors 30 --executor-cores 3 --executor-memory 7g --driver-cores 1 --driver-memory 1800m ...使用以下设置创建 31 个容器(每个执行程序进程一个 + 一个驱动程序进程):

  • 正确:具有 1 个核心和 ~1800 MB RAM 的主容器
  • 正确:30 个从属容器,每个具有 ~7 GB RAM
  • 不正确:根据 YARN ResourceManager UI,每个从属容器仅使用1 个核心而不是 3 个核心运行(它仅显示 95 个中的 31 个在使用中,而不是 91 = 30 * 3 + 1),请参见下面的屏幕截图

在此处输入图像描述

我的问题在这里:为什么spark-submit参数--executor-cores 3没有效果?