Lightsailインスタンスを1GBから512MBに縮小した後に処した事

Lightsailインスタンスを1GBから512MBに縮小した後に処した事

「移行終わりました!」とかいたら色々穴があったので修正中。

wp-contentが書き換えられてる

つい昨日発見して一番こまった問題。
いつの間にか投稿内のwp-contentのパスから”/wp”の文字が消されていた。

  • 正常:”http://dolls.tokyo/wp-content/uploads/…..”
  • 問題:”https://dolls.tokyo-content/uploads/…..”

これがDuplicator – | WordPress.orgの問題なのか、自分の操作ミスなのかはもう一度やらないと分かりません。

mysqlのwp-postテーブルを直接覗くと、もう元のデータ自体が変換されてしまっていました。
プラグインか何かが動的に書き換えているだけ、だと良かったんだけど。

結局、以前にも使用したDatabase Search and Replace Script in PHP | inter.connectのお世話になりました。
1万個以上もあるおかしくなったリンクを書き換えるのが一瞬で済んだのは助かるー

本当、誰がやったのだか。

ブログカードの画像が表示されない

既知の問題。
Jetpackの”画像の遅延読み込みを有効にする”と、Wordpressが自動で作成してくれるブログカード(以下参照)の画像が白抜けになります。

有効化と承認ができなくなったJetpackプラグインを復旧させるまでの手順

Jetpack>設定>パフォーマンス>”画像の遅延読み込みを有効にする”のスライドをOFFにします。

ずっと待っていたら表示されるのかな・・・?

Masonry Gridテーマのカスタマイズ

Masonry Grid – WordPress theme | WordPress.orgは非常にいじりがいのあるテーマ。
しかしどうしても譲れない問題がタイトル表記。

サイトタイトルをロゴ画像で表示しているにもかかわらず、テキストのサイトタイトルが消せない。
当初は適当にサイトタイトル自体を空白にしていたけれど、ブクマもツイートもサイト名が消えてしまう。

ということで直接テーマファイルをいじって消しました。

このテキストは”themes/masonry-grid/template-parts/header/header-content.php”に書かれた masonry_grid_site_logo();メソッドで生成されています。
その場所は”themes/masonry-grid/inc/template-tags.php”の冒頭でした。

適当に32行目を短縮。

            'title' => '<a href="%1$s" class="custom-logo-name">%2$s</a>',
                ↓
            'title' => '',

スワップ領域の追加

以前に512MBインスタンスを使っていたときはメモリ不足が頻発していました。
よってスワップ領域を追加しました。

初期状態の確認

$ sudo cat /proc/swaps
Filename                                Type            Size    Used    Priority
/mnt/.bitnami.swap                      file            649996  174592  -2

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            233M     0  233M   0% /dev
tmpfs            49M  1.6M   47M   4% /run
/dev/xvda1       20G  5.0G   14G  27% /
tmpfs           241M     0  241M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           241M     0  241M   0% /sys/fs/cgroup
/dev/xvda15     124M  278K  124M   1% /boot/efi
tmpfs            49M     0   49M   0% /run/user/1000

スワップ領域の作成と追加

$ sudo dd if=/dev/zero of=/var/swapvaol bs=1M count=4096
4096+0 records in
4096+0 records out
4294967296 bytes (4.3 GB, 4.0 GiB) copied, 99.1793 s, 43.3 MB/s

$ sudo chmod 600 /var/swapvaol

$ sudo mkswap /var/swapvaol
Setting up swapspace version 1, size = 4 GiB (4294963200 bytes)
no label, UUID=3f418847-ed0e-43da-8372-c86b849428b1

$ sudo swapon /var/swapvaol

$ cat /proc/swaps
Filename                                Type            Size    Used    Priority
/mnt/.bitnami.swap                      file            649996  179456  -2
/var/swapvaol                           file            4194300 0       -3

スワップ領域の恒久化

$ sudo vim /etc/fstab
(最終行に以下を追記)
/var/swapvaol swap swap defaults 0 0

再起動後に/proc/swapsを確認すると、作成したボリュームの優先度が上位となっています。
もともとの/mnt/.bitnami.swap(600MB)は外し方がわからないので放置中。
20GBプランなのでヨシとします。

function.phpへの機能追加

使うテーマを決めたら、function.phpに以下の設定を追加しました。

/*
* スラッグ名が日本語だったら自動的に投稿タイプ+id付与へ変更(スラッグを設定した場合は適用しない)
*/
function auto_post_slug( $slug, $post_ID, $post_status, $post_type ) {
    if ( preg_match( '/(%[0-9a-f]{2})+/', $slug ) ) {
        $slug = utf8_uri_encode( $post_type ) . '-' . $post_ID;
    }
    return $slug;
}
add_filter( 'wp_unique_post_slug', 'auto_post_slug', 10, 4  );


/* 投稿一覧にスラッグ追加 */
function add_posts_columns_slug($columns) { 
    $columns['slug'] = 'スラッグ'; 
    return $columns; 
} 
function add_posts_columns_slug_row($column_name, $post_id) { 
    if( $column_name == 'slug' ) { 
        $slug = get_post($post_id) -> post_name; 
        echo esc_attr($slug); 
    } 
} 
add_filter( 'manage_posts_columns', 'add_posts_columns_slug' ); 
add_action( 'manage_posts_custom_column', 'add_posts_columns_slug_row', 10, 2 );

過負荷と思われるサイトフリーズ発生

再作成から数日後、昼から8hほどサイトが止まっていました。

以前の1GBインスタンスのリブート問題とは異なり、SSHにも入れない過負荷状態。
CPUメトリクスは平常値だったのだけど、メモリが4KBしか空いてなかった。
スワップはガラガラなのにどうして・・・。

今回はhttpdだけrestartしても復帰せず。
結局3つのモジュールをリスタートしたら復帰しました。これは昔もあったmysql問題の再発な気がします。

とりあえずまたも定期チェック&強制リスタスクリプトを入れました。

[Lightsail]httpdの応答を定期的チェックしてステータスコード200じゃなかったらとりあえず再起動する

ただ、1GBインスタンスで起きていたhttpdの定期フリーズは発生していません。
あれは何だったんだろうか。

コメントを残す