gpt4 book ai didi

java - 服务器错误,状态代码:400,错误代码:100005,消息:您已超出组织的内存限制

转载 作者:行者123 更新时间:2023-12-02 18:50:22 25 4
gpt4 key购买 nike

我正在尝试使用Cloud Foundry将简单的Spring + Spring Boot应用程序部署到IBM Cloud。我的Docker文件如下所示:

# IBM Java SDK UBI is not available on public docker yet. Use regular
# base as builder until this is ready. For reference:
# https://github.com/ibmruntimes/ci.docker/tree/master/ibmjava/8/sdk/ubi-min

FROM ibmjava:8-sdk AS builder
LABEL maintainer="IBM Java Engineering at IBM Cloud"

WORKDIR /app
RUN apt-get update && apt-get install -y maven

COPY pom.xml .
RUN mvn -N io.takari:maven:wrapper -Dmaven=3.5.0

COPY . /app
RUN ./mvnw install

ARG bx_dev_user=root
ARG bx_dev_userid=1000
RUN BX_DEV_USER=$bx_dev_user
RUN BX_DEV_USERID=$bx_dev_userid
RUN if [ $bx_dev_user != "root" ]; then useradd -ms /bin/bash -u $bx_dev_userid $bx_dev_user; fi

# Multi-stage build. New build stage that uses the UBI as the base image.

# In the short term, we are using the OpenJDK for UBI. Long term, we will use
# the IBM Java Small Footprint JVM (SFJ) for UBI, but that is not in public
# Docker at the moment.
# (https://github.com/ibmruntimes/ci.docker/tree/master/ibmjava/8/sfj/ubi-min)

FROM adoptopenjdk/openjdk8:ubi-jre

# Copy over app from builder image into the runtime image.
RUN mkdir /opt/app
COPY --from=builder /app/target/javaspringapp-1.0-SNAPSHOT.jar /opt/app/app.jar

ENTRYPOINT [ "sh", "-c", "java -jar -XX:MaxRAM=10m /opt/app/app.jar" ]
如您所见,我限制了我的应用程序最多只能使用10MB,并且我的实例具有256MB的可用空间。但是,每次部署应用程序时,都会出现以下错误:
Log 1
另外,当我运行ps命令检查正在运行的进程时,没有什么会消耗我的所有内存。
Log 2
我已经在本地运行了相同的应用程序,最大只需要25MB,因此我的实例的256MB应该足够了。关于如何解决此问题的任何想法?
注意:很遗憾,目前不允许我增加实例的容量。

[更新]因此,我决定从头开始,并在IBM Cloud中创建一个新的Java Spring App。 IBM自动将其设置为以 this template开头,该副本已克隆到您的存储库中。该应用已正常部署,我可以访问它。
现在,我在HTML中删除了 一行代码,并尝试再次部署。令我惊讶的是,我得到了:
FAILED
Error restarting application: Server error, status code: 400, error code: 100005, message: You have exceeded your organization's memory limit: app requested more memory than available
这怎么可能?

最佳答案

我找到了解决方案;这是相当意外和违反直觉的。这是我所做的:

  • 我将应用程序实例的内存减少到64MB。

  • enter image description here
  • 在manifest.yml中,我将应用程序的内存设置为192M。我的 list 如下所示:
  • applications:
    - instances: 1
    timeout: 180
    name: appname
    buildpack: java_buildpack
    path: ./target/appname-1.0-SNAPSHOT.jar
    disk_quota: 1G
    memory: 192M
    domain: eu-gb.mybluemix.net
    host: appHost
    env:
    JAVA_OPTS: '-XX:ReservedCodeCacheSize=32M -XX:MaxDirectMemorySize=32M'
    JBP_CONFIG_OPEN_JDK_JRE: '[memory_calculator: {stack_threads: 2}]'
  • 我将manifest.yml中的更改推送到了仓库中,开始了新的部署。这次,应用程序已成功部署并且运行顺利。

  • 注意:部署后,实例的内存将被覆盖并分配192MB。为了执行代码中的任何进一步更改,我需要将内存设置回64MB,然后再进行更改并部署应用程序。

    关于java - 服务器错误,状态代码:400,错误代码:100005,消息:您已超出组织的内存限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63004441/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com