2015-06-25 23 views
12

Bir ec2 örneğinde çalışan Jenkins'imiz var.Jenkins bellek yetersiz hatası oluşturuyor

17:29:39.149 [INFO] [org.gradle.api.Project] OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000007ac000000, 234881024, 0) failed; error='Cannot allocate memory' (errno=12) 
17:29:39.150 [INFO] [org.gradle.api.Project] # 

17:29:39.150 [INFO] [org.gradle.api.Project] # There is insufficient memory for the Java Runtime Environment to continue. 

17:29:39.150 [INFO] [org.gradle.api.Project] # Native memory allocation (malloc) failed to allocate 234881024 bytes for committing reserved memory. 

Ben bu konuda araştırılmış ve bu tür yığın bellek, koç ve PermGenSize artırmak gibi çeşitli ayarları denedik: Bir yapıyı yaparken, biz şu hatayı görüyoruz. İşte şu anki hafıza ayarım Jenkins:

-Xms256m -Xmx2048m -XX:MaxPermSize=512m 

Eksik olduğum başka şeyler OOM'a neden oluyor mu?

+0

Ben Jenkins bellek (kendi jvm üzerinde çalıştırılan) Buradaki sorun, ama gradle süreç değildir şüpheli bakmak . Gradle hafızasını artırmayı deneyin (GRADLE_OPTS = -Xmx512m ....) ve tekrar test edin. –

+0

GRADLE_OPTS -Xmx2048m'ye ayarlıyım ve hala bellek sorunlarım var. – Satya

+0

Gradle'la çok aşina değilim ... belki de yeni bir jvm sorar, bu da ne çöküyor ... Ayrıca - yeterli sistem belleğiniz var mı? –

cevap

5

Bu, JVM düzeyinde bir bellek sorunu değil, işletim sistemi düzeyinde bir sorun değildir. JVM 224MB'yi ayırmaya çalışır, ancak bu miktar bellek işletim sistemi düzeyinde mevcut değildir. Bu, bir JVM'nin -Xmx ayarları bir sistemdeki boş bellek miktarından daha büyük olduğunda olur. İşletim sistemindeki boş bellek miktarını kontrol edin ve mevcut JVM belleğinizi boş bellek içine sığacak şekilde sınırlandırın veya belleği boşaltmaya çalışın (diğer işlemlerdeki bellek miktarını sınırlayarak) veya bir EC2 örneğini deneyin. daha fazla bellekle.

6

Aynı sorunu sattım. (Ec2, t2.micro, Ubuntu 14, Jenkins, Tomcat, Maven'im var). Varsayılan olarak ,. Bunu doğrulamak için:

free -m 

Sadece bazı ekleyin. Başlamak için 1 GB ile deneyin. Yine

sudo fallocate -l 1G /swapfile 
sudo chmod 600 /swapfile 
sudo mkswap /swapfile 
sudo swapon /swapfile 

Kontrol: Daha fazla ayrıntı için

free -m 

here

+0

Bir çekicilik gibi çalıştım! – CandleCoder

İlgili konular