Bagaimana cara memberi Jenkins lebih banyak ruang heap ketika itu dimulai sebagai layanan di bawah Windows?


Jawaban:


90

Di direktori instalasi Jenkins Anda ada jenkins.xml, di mana Anda dapat menyetel berbagai opsi. Tambahkan parameter -Xmx dengan ukuran yang Anda inginkan ke argumen-tag (atau tambah ukuran jika sudah ada).



pertanyaan saya adalah: jika build kehabisan memori, mengapa kita harus mengatur opsi java di master?
yarin

1
Seharusnya tidak. Namun pertanyaan ini bukan tentang build yang kehabisan memori, ini tentang master yang kehabisan memori.
dunni

Pada Ubuntu 16.04.6 LTS, tidak ada file seperti itu. The /etc/default/jenkinssolusi yang ditawarkan di bawah oleh Steve adalah salah satu yang bekerja untuk saya.
insideClaw

110

Jika Anda menggunakan Aptitude (apt-get) untuk menginstal Jenkins di Ubuntu 12.04, hapus komentar pada JAVA_ARGSbaris di beberapa baris teratas /etc/default/jenkins:

# arguments to pass to java
#JAVA_ARGS="-Xmx256m"   # <--default value
JAVA_ARGS="-Xmx2048m"
#JAVA_ARGS="-Djava.net.preferIPv4Stack=true" # make jenkins listen on IPv4 address

3
bagaimana jika itu jendela?
Dejell

6
Pertanyaan secara khusus menyatakan Windows.
Nick Udell

6
Ya, saya menulis jawaban ini sebelum saya tahu apa yang saya lakukan di SO, dan saya terkejut karena mendapat begitu banyak suara positif. Mungkin, seperti saya, banyak orang menemukan cara untuk menjawab pertanyaan ini melalui mesin pencari, dan persentase yang lebih besar dari orang-orang itu menggunakan Linux atau Unix? Saya tidak mengerti.
Steve HHH

8
"Mungkin, seperti saya, banyak orang menemukan cara mereka untuk menjawab pertanyaan ini melalui mesin pencari, dan persentase yang lebih besar dari orang-orang itu menggunakan Linux atau Unix? Saya tidak memahaminya." Persis seperti itulah saya menemukannya.
Scott

1
Jangan lupa restart layanan jenkinssudo service jenkins stop sudo service jenkins start
Camilo Silva

74

Anda perlu mengubah file jenkins.xml . Secara khusus, Anda perlu berubah

   <arguments>-Xrs -Xmx256m 
    -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle 
    -jar "%BASE%\jenkins.war" --httpPort=8080</arguments>

untuk

    <arguments>-Xrs -Xmx2048m -XX:MaxPermSize=512m 
    -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle 
    -jar "%BASE%\jenkins.war" --httpPort=8080</arguments>

Anda juga dapat memverifikasi opsi Java yang digunakan Jenkins dengan menginstal plugin monitor Jenkins melalui Kelola Jenkins / Kelola Plugin dan kemudian menavigasi ke master Mengelola Jenkins / Pemantauan Hudson / Jenkins untuk menggunakan pemantauan guna menentukan berapa banyak memori yang tersedia untuk Jenkins.

Jika Anda mendapatkan kesalahan kehabisan memori saat Jenkins memanggil Maven, mungkin perlu menyetel MAVEN_OPTS melalui Kelola Jenkins / Sistem Konfigurasi, misalnya jika Anda menjalankan versi Java sebelum JDK 1.8 (nilainya adalah saran):

-Xmx2048m  -XX:MaxPermSize=512m

Jika Anda menggunakan JDK 1.8:

-Xmx2048m

ketika saya mencoba mengatur JENKINS_JAVA_OPTIONS seperti dijelaskan di atas, saya mendapatkan: "Memulai Jenkins opsi Tidak Dikenal: --XX: MaxPermSize = 512m"
nemoo

2
Hanya boleh ada satu tanda hubung: -XX:MaxPermSize=512m- tanggapan di atas telah diedit untuk memperbaiki kesalahan ketik ini.
Adam Rofer

1
Ada ide bagaimana mengatur JENKINS_JAVA_OPTIONS di Windows?
ATOzTOA

Pada Windows, menurut jenkins.361315.n4.nabble.com/… Anda menggunakan Control Panel -> System -> Advanced -> Environment Variables
Mark Butler

1
-XX:MaxPermSizetidak lagi digunakan dengan Java 8 atau lebih tinggi stackoverflow.com/questions/12114174/what-does-xxmaxpermsize-do
Micha Wiedenmann

24

Saya telah menambahkan ke / etc / sysconfig / jenkins (CentOS):

# Options to pass to java when running Jenkins.
#
JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Xmx1024m -XX:MaxPermSize=512m"

Untuk ubuntu, konfigurasi yang sama harus ditempatkan di / etc / default



-1

Jika Anda menggunakan template Jenkins, Anda dapat menetapkan pengaturan VM tambahan di dalamnya dan ini mungkin bertentangan dengan pengaturan VM sistem Anda

contoh tempalate Anda mungkin memiliki referensi seperti ini

 <mavenOpts>-Xms512m -Xmx1024m -Xss1024k -XX:MaxPermSize=1024m -Dmaven.test.failure.ignore=false</mavenOpts> 

Pastikan untuk menyelaraskan entri template ini dengan pengaturan VM sistem Anda

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.