第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

運(yùn)行時(shí).getRuntime().可用處理器() 返回 1,即使 ECS AWS 上有許多內(nèi)核可用

運(yùn)行時(shí).getRuntime().可用處理器() 返回 1,即使 ECS AWS 上有許多內(nèi)核可用

瀟湘沐 2022-09-28 09:54:11
我正在 AWS 的 ECS 上通過 Docker 運(yùn)行一個(gè)任務(wù)。該任務(wù)執(zhí)行一些受 CPU 限制的計(jì)算,我想并行運(yùn)行這些計(jì)算。我使用指定的線程數(shù)啟動(dòng)一個(gè)線程池,該線程池在我的PC上本地工作正常。出于某種原因,在 AWS ECS 上,即使有多個(gè)內(nèi)核可用,也始終返回 1。因此,我的計(jì)算按順序運(yùn)行,不使用多核。Runtime.getRuntime().availableProcessors()例如,現(xiàn)在,我有一個(gè)任務(wù)在“t3.medium”實(shí)例上運(yùn)行,根據(jù)文檔,該實(shí)例應(yīng)該有2個(gè)內(nèi)核。當(dāng)我執(zhí)行以下代碼時(shí):System.out.println("Java reports " +      Runtime.getRuntime().availableProcessors() + " cores");然后,日志上將顯示以下內(nèi)容:Java reports 1 cores我沒有在 ECS 的任務(wù)定義中指定參數(shù)。我看到在 ECS 管理控制臺(tái)的任務(wù)列表中,它有一列“CPU”,我的任務(wù)顯示為 0。我還注意到,在實(shí)例列表(= VM)中,它將“CPU可用”列為2048,這可能與VM具有2個(gè)內(nèi)核的事實(shí)有關(guān)。cpu我希望我的 Java 程序能夠查看 VM 必須提供的所有內(nèi)核。(通常情況下,當(dāng)Java程序在沒有Docker的計(jì)算機(jī)上運(yùn)行時(shí)的情況是這樣的)。我該怎么做?
查看完整描述

1 回答

?
拉丁的傳說

TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超8個(gè)贊

如果您啟動(dòng)大量線程,它們絕對(duì)會(huì)被調(diào)度到多個(gè)內(nèi)核。這個(gè)答案只是關(guān)于返回正確的值。許多“線程池”啟動(dòng)的線程數(shù)與該方法返回的線程數(shù)一樣多:它應(yīng)該返回可用的內(nèi)核數(shù)。Runtime.getRuntime().availableProcessors()

似乎有兩個(gè)主要的解決方案,兩者都不是理想的:

  • 在任務(wù)定義中設(shè)置參數(shù)。例如,如果您有 2 個(gè)內(nèi)核,并且想要同時(shí)使用它們,則必須在任務(wù)的定義中進(jìn)行設(shè)置。這不是很方便,原因有兩個(gè):cpu"cpu":2048

    • 如果選擇更大的實(shí)例,則必須確保更新此參數(shù)。

    • 如果您希望同時(shí)運(yùn)行兩個(gè)任務(wù),這兩個(gè)任務(wù)都可以偶爾使用所有核心進(jìn)行短期活動(dòng),AWS 不會(huì)在具有 的 2 核系統(tǒng)上安排兩個(gè)任務(wù)。它說從CPU的角度來看,VM是“滿”的。這違背了分時(shí)(Unix等)的理念,即每個(gè)任務(wù)都采用它需要的東西(例如,想象一下,在臺(tái)式PC上,如果你在雙核計(jì)算機(jī)上運(yùn)行Word和Excel,而Windows不允許你啟動(dòng)任何其他任務(wù),理由是Word可能需要所有一個(gè)核心,而Excel也可能這樣做, 因此,如果另一個(gè)程序可能同時(shí)需要所有內(nèi)核,則沒有足夠的內(nèi)核。"cpu":2048

  • 在 JDK 10 及更高版本中使用 JVM 選項(xiàng),如此所述。這并不方便,因?yàn)椋?code>-XX:ActiveProcessorCount=xx

    • 如上所述,如果您更改實(shí)例類型,則必須更改該值。

我寫了一篇更長(zhǎng)的博客文章,在這里描述了我的發(fā)現(xiàn):https://www.databasesandlife.com/java-docker-aws-ecs-multicore/


查看完整回答
反對(duì) 回復(fù) 2022-09-28
  • 1 回答
  • 0 關(guān)注
  • 135 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)