さくらのVPSの制限は2時間解けない

制限は突然来る。

サーバーの応答がないとヘルプをいただき(私の管理してるところじゃないんだけど…)
とりあえず見てみる。
webサーバー応答無し、ssh応答なくてログインできない、pingは通る。

さくらのVPSのコントロールパネルを見てみると
「このサーバはストレージのIOPS(1秒あたりのデータ入出力数)が制限されています。」
ですって。

朝9時直前ぐらいに制限がかかったようで、
コンソールを見るとOOM Killerの嵐。
おそらくswapファイルに大量のI/Oが発生していたのでしょう。

サポートに問い合わせると、制限は2時間だそうで、
「こちらでも解除はできないので、2時間待ってください」とのこと。

2時間も待ってられないので、とりあえず根気よくコンソールからログインを試行、
何度かチャレンジして成功したので、httpdとmysqldを停止。
みるみると負荷が下がっていくぞ…!

apacheのkeepalive timeoutが若干長いかなーというぐらいで他は特に気にならず。
プロセス数とかは追って調整するとして、再起動。
無事、動く。

wgetで巡回させても負荷がそんなに増えなかったのでこれで良しということにして完了。

サポートに言っても解除できないというのは覚えて置いた方が良いなー。

さくらのVPSは突然制限かけられて激重になるから要注意 | GUiLZ.ORG

「さくらのVPS」のディスク負荷が早朝4~6時に高い件。iowaitが酷いレベルに | TeraDas-テラダス

古いサーバーにCentOS7を入れようとして苦労

DELLのPowerEdge T105が転がっていたので再利用のためCentOS7をインストール。
LiveUSB CreatorでUSBメモリにnetinstallのisoを入れ、起動。

諸々設定してインストール開始すると、途中でハングアップ。3回やって同じところでハングアップ。
インストーラー起動時にInstall CentOS7~とか出てる画面でESCを押して linux text を指定、
CUIインストーラーで無事完了。
マウスを繋いでいなかったのでCUIのほうが楽だったね…

起動時、CentOS Linux 7 (Broken)と出てる。
指定したリポジトリが http://buildlogs.centos.org/centos/7/os/x86_64-latest だったので関係あるようだ。
壊れているわけじゃ無くて意図的に出てるものなんですって。

minimalインストール完了。
起動したのでyum updateしようとしたら"There are no enabled repos."と出る。
見たら /etc/yum.repos.d/ が空っぽになっていた。
CentOS-Baseすらないのかよ…同じ症状を当たってみるが特に解決策はナシ。

仕方ないので既にCentOS7が入っているサーバーから
/etc/yum.repos.d/ と /etc/pki/rpm-gpg/ をコピーしてくる。
sshは使えるのでこれで転送することにする。

コピーのためこのサーバーのIPアドレスを見ようとifconfigするが、ifconfig自体がない。
net-toolsが入らないといかんのでした。CentOS7デフォルトで使えるのは ip addr showでした。

reposがコピーできて一応動いたようです。

[OpenVPN] fragmentに注意

私の回りでCentOSを使っているところはぼちぼちCentOS7に移行してきてまして
OpenVPNを入れたら昔通りconfigを書いても繋がらない状況に。

具体的には、接続は確立するけどpingが失敗する。
ログを見ていたら
FRAG_IN error flags=0xfa2a187b: FRAG_TEST not implemented
なんてメッセージが出てる。

FRAG……fragment!!

そういえばサーバー側は特に具体的にmtuを書いてなかった。
一方でconfigは

fragment 1280
mssfix

なんて設定が書いてある(たぶんどっか西日本で使った名残か?)
両者で合わせないといけない部分が違ってた。

とりあえず今回は設定を外して運用。

しばらく使ってみて遅く感じるようなら、
改めてserverとclient両方に上記を追加する。

CentOS6にFML8でメーリングリスト

いろいろコラボレーションツールとかありますが、根強い人気のメーリングリスト。
みんなが使い慣れたインターフェースで、スマホにも届くし、
新しいことを覚えなくていいので、使いたいご要望をよくいただきます。

しかしMLは使いたくてもMLの管理はみんなやりたがらない。
コマンドメール送ってねといってもやらない。
今回の目的は、メンバー全員に届く&返信も全員にできる、ぐらいですからね。

そんなわけで久々にCentOS6にFML8を導入しました。他はpostfixとapacheです。

■ポイント
・perlのモジュール揃える
・CGI動かすのに苦労、suexec配下なのとmod_perlじゃダメ

■インストール
本家の説明の通り。
この時点でアレが足りないとか言われたらyumでインストールする。

■バーチャルドメイン
makefml newdomain example.net するのを忘れない
virtual_alias_mapsの指定を忘れない

■管理用webインターフェース(CGI)を使う
SuEXECでfmlユーザーが動かないといけないのでそのようにする。
/home/fml/public_html/cgi-bin/以下略~となるので
http://example.com/~fml/cgi-bin/以下略~と動かす。
表向きのドメインにUserDirが見えるのもなんだかなーということでfmlだけ使えるようにする
続きを読む

WordPress上でAPCのエラー→メモリ調整

そんな爆発的な数のアクセスを裁くわけでもなしー、と、さくらのVPSを使ってデフォルト適当に動かしていたところ、一部WordpressサイトでAPCのメモリ不足だとエラーが出まくる。
「Unable To Allocate Memory For Pool」
こりゃ調整しないといけない。

apc.phpを眺めつつ、たぶんプラグイン入れまくりで何かあるよなーと思うもWPはWPで対処するとして別件に。
サーバー設定としては単純にAPCのメモリ割当量を増やせば解決!というわけにもいかないので、そもそものメモリ割当量が多すぎなんじゃないのかということで調整。
CentOS6、メインメモリ2GB。

/etc/php.d/apc.ini
apc.shm_size = 128M
apc.mmap_file_mask=/dev/zero

php および APC の設定を行う | レンタルサーバー・自宅サーバー設定・構築のヒント
メモリ2GBなので128MBに。1GBで64M、512MBで32Mが適量のよう。

それでもまだエラー出る。しかしこれ以上は増やせない!
ということで1プロセスあたりのメモリを減らすためにapacheのモジュールを外す。

ウェブ開発者のための、1時間でできるLAMP環境構築術(CentOS編) – さくらインターネット創業日記
参考になります。

とりあえずまだPreforkで動かしているので
/etc/httpd/conf/httpd.conf
<IfModule prefork.c>
StartServers 10
MinSpareServers 5
MaxSpareServers 15
ServerLimit 256
MaxClients 128
MaxRequestsPerChild 2000
</IfModule>

と設定して様子見。
KeepAliveはOff。

今のところ穏やか。