Saya telah memperhatikan beberapa alasan penggunaan CPU yang tidak normal dengan pemasangan Jenkins saya di Windows 7 Ultimate.
-
Saya baru saja memutakhirkan dari v2.138 ke v2.140 plus menambahkan beberapa plugin tambahan. Saya mulai memperhatikan masalah dengan Java Jenkins yang dapat dieksekusi mengambil hingga 60% dari waktu CPU saya setiap kali suatu pekerjaan dipicu. Tidak ada pekerjaan yang terikat dengan CPU, hanya mengambil data dari server eksternal, jadi tidak masuk akal. Itu diperbaiki dengan restart sederhana dari layanan Jenkins. Saya menganggap pemutakhiran tidak selesai dengan bersih.
-
Pengumpulan Sampah Java melempar kesalahan dan memonopoli CPU saat berjalan dengan pengaturan memori default. Itu mungkin berlebihan, tapi saya menjadi liar dan meningkatkan Java Heap Space untuk Jenkins dari default 256mb menjadi 4gb; yang memecahkan masalah ini untuk saya.
Lihat solusi ini untuk mendapatkan petunjuk:https://stackoverflow.com/a/8122566/4479786
Ternyata, masalah saya adalah beberapa pekerjaan memiliki ribuan bangunan lama. Ini baik-baik saja di Jenkins 1.6 tetapi ini masalah di 2.5 (saya kira mungkin Jenkins mencoba memuat semua build ke dalam memori saat Anda melihat halaman ikhtisar pekerjaan). Untuk memperbaikinya, saya baru saja menghapus sebagian besar bangunan lama dari pekerjaan bermasalah menggunakan strategi ini dan kemudian memuat ulang jenkins. Bekerja dengan sangat baik!
Saya juga menyetel plugin "buang versi lama" agar hanya menyimpan 50 versi terbaru, untuk mencegah hal ini terjadi lagi.
Setiap kali ada permintaan masuk, Jenkins akan menelurkan beberapa utas untuk melayani permintaan tersebut. Setelah memutakhirkan Jenkins, itu mungkin dipanggil dengan kecepatan tinggi pada saat itu. Harap periksa penggunaan CPU dan memori server Jenkins sementara skenario berikut:
- Jenkins menganggur dan tidak ada aplikasi lain yang berjalan di server.
- Menjadwalkan build dan tidak ada aplikasi lain yang berjalan di server.
Dan bandingkan perilaku yang dapat membantu Anda menentukan apakah Jenkins atau menjalankan jenkins secara paralel dengan aplikasi lain benar-benar membuat masalah.
Seperti yang dikatakan @vlp, coba pantau aplikasi jenkins melalui JVisualVM dengan konfigurasi Jstad untuk terhubung. Lihat tautan ini untuk Mengonfigurasi JvisualVM dengan Jstad.