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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

沒有足夠的內(nèi)存用于 Spring Boot(從 1Gb heroku dyno 開始)

沒有足夠的內(nèi)存用于 Spring Boot(從 1Gb heroku dyno 開始)

皈依舞 2023-08-09 15:05:02
我有一個Spring boot應用程序,一旦部署到heroku 512 Mb dyno。在某些時候,應用程序初始化在 JPA EntityManager 初始化時隨機開始面臨“Java 堆空間”錯誤。我已將內(nèi)存增加至 1 Gb,將測功機切換至 Standard-1。指標已啟用,我意識到,在大多數(shù)時間里,我的內(nèi)存占用量為 512 Mb,甚至占用率還稍高。因此,看起來 1 Gb 就足夠了,因為之前它已經(jīng)成功地在 512 Mb 下工作。令人驚訝的是,我仍然在部署中獲得隨機成功:有時我會遇到 Java 堆空間錯誤,有時則不會。成功后,內(nèi)存占用當然超過了512Mb,但明顯小于1Gb。Heroku自己指定了-Xmx,我無法配置它。java $JAVA_OPTS -Xmx256m -jar target/*.jar --spring.profiles.active=prod,heroku,no-liquibase --server.port=$PORT是啟動應用程序的命令行。我可以將 $JAVA_OPTS 設置為 -Xmx900m,但它不會被拾取。此外,它通過其自身形成 JAVA_TOOLS_OPTIONS,為 1Gb Standard-1 heroku dyno 設置有關 -Xmx671m 的內(nèi)容。我也無法用我自己的更大的 -Xmx 覆蓋這個值我的問題有多個:1)我如何確定,在Spring-Boot啟動時,JVM已經(jīng)使用-Xmx671m,而不是-Xmx256m。一旦我嘗試升級到 2 Gb dyno,但即使在它之下,我也遇到了 Java 堆空間錯誤,例如初始命令行調(diào)用的 -Xmx256m 仍然相同,即使對于 2Gb dyno 也是有意義的,而 -Xmx2Gb 設置當應用程序失敗時,JAVA_TOOLS_OPTIONS 中的 for 實際上并不影響啟動的那部分。2)如果 JAVA_TOOLS_OPTIONS 中的 -Xmx 實際上有意義,那么 Spring Boot 應用程序如何在啟動時嘗試占用比稍后工作期間使用的堆更多的堆,以及它如何每次占用隨機卷?是否可以調(diào)整此行為(例如,識別未使用的 bean 并排除它們;添加一些 JVM 選項等)
查看完整描述

1 回答

?
叮當貓咪

TA貢獻1776條經(jīng)驗 獲得超12個贊

確認實際Xmx值的最佳方法是使用heroku java:jconsole命令heroku ps:exec或使用類似于然后jinfo在進程中使用的命令。

您還可以包含heroku-javaagent 來記錄內(nèi)存統(tǒng)計信息或使用-XX:+PrintGC.?這兩個都會記錄堆統(tǒng)計信息,您可以使用 查看它們heroku logs --tail。

我不確定我是否理解你問題的第二部分,但我懷疑你看到 JVM 使用了大量的堆外內(nèi)存。


查看完整回答
反對 回復 2023-08-09
  • 1 回答
  • 0 關注
  • 146 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號