0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GCP e2-micro インスタンスでJenkins buildが停止する問題

Posted at

Jenkinsでyarn buildを試してみよう

Jenkinsのインストールが完了し、CD設定のためにまずNodejsプラグインをインストールしました。

Nodejsプラグインの設定

image.png

  1. プラグインをインストールして再起動した後、Global Tool Configurationに移動してプラグインの設定を行います。
  2. NodeJS項目で適当な名前を付け、NodeJSのバージョンを選択します。
  3. yarnを使用するため、yarnも追加します。

パイプラインプロジェクトの作成

  1. 新しいパイプラインプロジェクトを作成し、Gitと連携します。
  2. Project URLにGitHubリポジトリのアドレスを入力します。
  3. ビルドトリガーの設定で、GitHub hook triggerにチェックを入れます。
  4. Pipeline script from SCMを選択し、リポジトリURLにはGitHubリポジトリのHTTPS URL(.gitで終わるアドレス)を入力します。
  5. ビルドトリガーを設定するブランチを選択します。

パイプラインスクリプトの作成

image.png

ビルドまでのパイプラインテキストを作成し、保存してからビルドを実行してみましょう(JenkinsfileをGitHubにプッシュ)。

問題発生:ビルドが終わらない

image.png

このように実行したところ、Jenkinsが非常に遅くなり、ページの読み込みができなくなりました。e2-microのパフォーマンスが低いためだと思いましたが、3〜4時間経っても接続できませんでした。

メモリ不足が原因?

GCPのe2-microのメモリが1GBしかないため、メモリ不足が原因ではないかと考え、メモリスワップの設定を試してみました。AWSの公式サイトでも紹介されていました。

スワップファイルを使用してAmazon EC2インスタンスのスワップスペースにメモリを割り当てる

メモリスワップの設定手順

  1. ルートにスワップファイルを作成

    $ sudo dd if=/dev/zero of=/swapfile bs=128M count=32
    // bsはブロックサイズ
    // countはブロック数、ここでは4GB割り当て
    
  2. スワップファイルの権限を変更

    $ sudo chmod 600 /swapfile
    
  3. Linuxスワップ領域を設定

    $ sudo mkswap /swapfile
    
  4. スワップスペースにスワップファイルを追加

    $ sudo swapon /swapfile
    
  5. プロセスが成功したか確認

    $ sudo swapon -s
    
  6. /etc/fstabファイルを編集して起動時にスワップファイルを開始

    $ sudo vi /etc/fstab
    

    最後の行に以下を追加

    /swapfile swap swap defaults 0 0
    

これらの手順を実行した後、freeコマンドで確認するとスワップメモリが割り当てられていることが確認できます。

image.png

問題解決!

これでビルドを実行すると、遅いですが正常に終了することが確認できました。AWS EC2 t2.microでも同様の症状が発生するため、VPCのスペックを上げるか、このようにスワップメモリを設定することで解決できます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?