Làm cách nào để cung cấp cho Jenkins nhiều không gian hơn khi nó bắt đầu như một dịch vụ trong Windows?


Câu trả lời:


90

Trong thư mục cài đặt Jenkins của bạn có một tệp jenkins.xml, nơi bạn có thể đặt các tùy chọn khác nhau. Thêm tham số -Xmx với kích thước bạn muốn vào thẻ đối số (hoặc tăng kích thước nếu nó đã có).



Câu hỏi của tôi là: nếu các bản dựng sắp hết bộ nhớ, tại sao chúng ta nên đặt các tùy chọn java trong bản gốc?
yarin

1
Bạn không nên. Nhưng câu hỏi này không phải là về các bản dựng hết bộ nhớ, mà là về việc chủ nhân hết bộ nhớ.
dunni

Kể từ Ubuntu 16.04.6 LTS, không có tệp nào như vậy. Các /etc/default/jenkinsgiải pháp đưa ra dưới đây bởi Steve là một trong đó làm việc cho tôi.
bên trongClaw

110

Nếu bạn đã sử dụng Aptitude (apt-get) để cài đặt Jenkins trên Ubuntu 12.04, hãy bỏ JAVA_ARGSdòng trong vài dòng trên cùng của /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
Nếu đó là cửa sổ thì sao?
Dejell

6
Câu hỏi cụ thể nêu Windows.
Nick Udell 17/12/14

6
Vâng, tôi đã viết câu trả lời này trước khi tôi biết những gì tôi đang làm trên SO, và tôi ngạc nhiên rằng nó đã nhận được rất nhiều sự ủng hộ. Có lẽ, giống như tôi, rất nhiều người tìm đến câu hỏi này thông qua một công cụ tìm kiếm và phần lớn những người đó đang sử dụng Linux hoặc Unix? Tôi không hiểu nó
Steve HHH

8
"Có lẽ, giống như tôi, rất nhiều người tìm đến câu hỏi này thông qua một công cụ tìm kiếm và phần lớn những người đó đang sử dụng Linux hoặc Unix? Tôi không hiểu điều đó." Đó chính xác là cách tôi tìm thấy nó.
Scott

1
Đừng quên khởi động lại dịch vụ jenkinssudo service jenkins stop sudo service jenkins start
Camilo Silva

74

Bạn cần sửa đổi tệp jenkins.xml . Cụ thể bạn cần thay đổi

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

đến

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

Bạn cũng có thể xác minh các tùy chọn Java mà Jenkins đang sử dụng bằng cách cài đặt plugin theo dõi Jenkins thông qua Manage Jenkins / Manage Plugins và sau đó điều hướng đến Quản lý Jenkins / Giám sát của chủ Hudson / Jenkins để sử dụng theo dõi để xác định lượng bộ nhớ có sẵn cho Jenkins.

Nếu bạn gặp lỗi bộ nhớ khi Jenkins gọi Maven, có thể cần phải đặt MAVEN_OPTS thông qua Manage Jenkins / Configure System, ví dụ: nếu bạn đang chạy trên phiên bản Java trước JDK 1.8 (các giá trị là đề xuất):

-Xmx2048m  -XX:MaxPermSize=512m

Nếu bạn đang sử dụng JDK 1.8:

-Xmx2048m

Khi tôi thử cài đặt JENKINS_JAVA_OPTIONS như được mô tả ở trên, tôi nhận được: "Bắt đầu tùy chọn Jenkins Không nhận dạng: --XX: MaxPermSize = 512m"
nemoo

2
Chỉ nên có một dấu gạch nối: -XX:MaxPermSize=512m- phản hồi trên đã được chỉnh sửa để sửa lỗi chính tả này.
Adam Rofer

1
Bạn có biết cách đặt JENKINS_JAVA_OPTIONS trong Windows không?
ATOzTOA

Trên Windows, theo jenkins.361315.n4.nabble.com/... bạn sử dụng Control Panel -> System -> Advanced -> Environment Variables
Đánh dấu Butler

1
-XX:MaxPermSizekhông còn được sử dụng với Java 8 hoặc cao hơn stackoverflow.com/questions/12114174/what-does-xxmaxpermsize-do
Micha Wiedenmann

24

Tôi đã thêm vào / etc / sysconfig / jenkins (CentOS):

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

Đối với Ubuntu, cấu hình tương tự phải được đặt trong / etc / default


16

Từ wiki Jenkins:

Các tham số khởi chạy JVM của các dịch vụ Windows này được kiểm soát bởi một tệp XML jenkins.xml và jenkins-nô lệ tương ứng. Các tệp này có thể được tìm thấy trong $ JENKINS_HOME và trong thư mục gốc nô lệ, sau khi bạn cài đặt chúng dưới dạng dịch vụ Windows.

Các định dạng tập tin nên tự giải thích. Tinh chỉnh các đối số ví dụ để cung cấp cho JVM một bộ nhớ lớn hơn.

https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+as+a+Windows+service


-1

Nếu bạn đang sử dụng các mẫu Jenkins, bạn có thể có các cài đặt VM bổ sung được xác định trong đó và điều này có thể xung đột với các cài đặt VM hệ thống của bạn

ví dụ tempalate của bạn có thể có các tài liệu tham khảo như thế này

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

Đảm bảo căn chỉnh các mục nhập mẫu này với cài đặt VM của hệ thống của bạn

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.