Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Docker图像覆盖空间不足,导致吊舱收回ok GKE_Java_Docker_Kubernetes_Google Kubernetes Engine - Fatal编程技术网

Java Docker图像覆盖空间不足,导致吊舱收回ok GKE

Java Docker图像覆盖空间不足,导致吊舱收回ok GKE,java,docker,kubernetes,google-kubernetes-engine,Java,Docker,Kubernetes,Google Kubernetes Engine,我创建了一个Docker映像,它每分钟运行一个java命令(通过ExecutorService),并使用log将其打印到屏幕上 大多数情况下,输出如下所示: 未找到请求,正在睡眠一分钟 它运行在谷歌云平台上的Kubernetes引擎上。我遇到一个问题,我的pod每5小时就会被逐出一次,错误如下: 节点资源不足:临时存储。容器摄取寻呼机修正使用的是216Ki,超出了其0的请求。 这是什么原因?起初,我认为原因是无法关闭输入/输出流和HttpConnections。我检查了代码并确保关闭了所有连接,

我创建了一个Docker映像,它每分钟运行一个java命令(通过ExecutorService),并使用log将其打印到屏幕上

大多数情况下,输出如下所示:
未找到请求,正在睡眠一分钟

它运行在谷歌云平台上的Kubernetes引擎上。我遇到一个问题,我的pod每5小时就会被逐出一次,错误如下:

节点资源不足:临时存储。容器摄取寻呼机修正使用的是216Ki,超出了其0的请求。

这是什么原因?起初,我认为原因是无法关闭输入/输出流和HttpConnections。我检查了代码并确保关闭了所有连接,但随着时间的推移,连接的大小仍然会增加

当我查看磁盘使用情况时,我发现我的/覆盖空间随着时间的推移而增加。下面是仅运行一个java命令的“已使用”空间

/ # df -h
Filesystem                Size      Used Available Use% Mounted on
overlay                 291.2G    172.3G    118.8G  59% /
tmpfs                    64.0M         0     64.0M   0% /dev
tmpfs                   102.3G         0    102.3G   0% /sys/fs/cgroup
/dev/sda1               291.2G    172.3G    118.8G  59% /dev/termination-log
/dev/sda1               291.2G    172.3G    118.8G  59% /mount/javakeystore
/dev/sda1               291.2G    172.3G    118.8G  59% /mount/json
/dev/sda1               291.2G    172.3G    118.8G  59% /etc/resolv.conf
/dev/sda1               291.2G    172.3G    118.8G  59% /etc/hostname
/dev/sda1               291.2G    172.3G    118.8G  59% /etc/hosts
shm                      64.0M         0     64.0M   0% /dev/shm
tmpfs                   102.3G     12.0K    102.3G   0% /run/secrets/kubernetes.io/serviceaccount
tmpfs                   102.3G         0    102.3G   0% /proc/acpi
tmpfs                    64.0M         0     64.0M   0% /proc/kcore
tmpfs                    64.0M         0     64.0M   0% /proc/keys
tmpfs                    64.0M         0     64.0M   0% /proc/timer_list
tmpfs                   102.3G         0    102.3G   0% /proc/scsi
tmpfs                   102.3G         0    102.3G   0% /sys/firmware
/ # df -h
Filesystem                Size      Used Available Use% Mounted on
overlay                 291.2G    172.4G    118.8G  59% /
tmpfs                    64.0M         0     64.0M   0% /dev
tmpfs                   102.3G         0    102.3G   0% /sys/fs/cgroup
/dev/sda1               291.2G    172.4G    118.8G  59% /dev/termination-log
/dev/sda1               291.2G    172.4G    118.8G  59% /mount/javakeystore
/dev/sda1               291.2G    172.4G    118.8G  59% /mount/json
/dev/sda1               291.2G    172.4G    118.8G  59% /etc/resolv.conf
/dev/sda1               291.2G    172.4G    118.8G  59% /etc/hostname
/dev/sda1               291.2G    172.4G    118.8G  59% /etc/hosts
shm                      64.0M         0     64.0M   0% /dev/shm
tmpfs                   102.3G     12.0K    102.3G   0% /run/secrets/kubernetes.io/serviceaccount
tmpfs                   102.3G         0    102.3G   0% /proc/acpi
tmpfs                    64.0M         0     64.0M   0% /proc/kcore
tmpfs                    64.0M         0     64.0M   0% /proc/keys
tmpfs                    64.0M         0     64.0M   0% /proc/timer_list
tmpfs                   102.3G         0    102.3G   0% /proc/scsi
tmpfs                   102.3G         0    102.3G   0% /sys/firmware

这是吊舱上唯一运行的东西:

/ # ps -Af
PID   USER     TIME  COMMAND
    1 root      0:27 java -jar -Dlog4j.configurationFile=/ingestion-pager-remediation/log4j.properties -Dorg.slf4j.simpleLogger.defaultLogLevel=info /ingestion-pager-remediation/ingest-pa
  222 root      0:00 sh
  250 root      0:00 ps -Af
如前所述,这是一个简单的java命令,它运行一些http连接,而不是休眠

有人知道为什么我的覆盖空间会随时间增加到300GB吗

(编辑)

我仅使用此调试配置登录到标准输出:

log4j.rootLogger=DEBUG, STDOUT
log4j.logger.deng=INFO
log4j.appender.STDOUT=org.apache.log4j.ConsoleAppender
log4j.appender.STDOUT.layout=org.apache.log4j.PatternLayout
log4j.appender.STDOUT.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
org.slf4j.simpleLogger.defaultLogLevel = info

Java应用程序是否写入文件系统?写入Docker容器的可写层会消耗覆盖存储驱动程序中的空间。不,java应用程序不会写入文件系统。如上所示。您写入
System.out
(log4j配置中的STDOUT)的内容会发生什么变化?当代码无头执行时,它会写入
/dev/nul
?或者将其重定向到一个文件(在WebSphere上,他们将其命名为
system.out
…)?默认日志级别设置为INFO时,日志输出可能会非常大……输出很小,每10分钟仅运行10行。我不使用System.out做任何事情。我认为如果我重定向到/dev/null,我将无法通过“kubectl日志”查看控制台输出。您的Java应用程序是否写入文件系统?写入Docker容器的可写层会消耗覆盖存储驱动程序中的空间。不,java应用程序不会写入文件系统。如上所示。您写入
System.out
(log4j配置中的STDOUT)的内容会发生什么变化?当代码无头执行时,它会写入
/dev/nul
?或者将其重定向到一个文件(在WebSphere上,他们将其命名为
system.out
…)?默认日志级别设置为INFO时,日志输出可能会非常大……输出很小,每10分钟仅运行10行。我不使用System.out做任何事情。我认为如果我重定向到/dev/null,我将无法通过“kubectl日志”查看控制台输出