「ICT Tips」カテゴリーアーカイブ

RedisやAPCuがうまく効かない件

以前にowncloudを導入した際に、キャッシュの役割を果たすACPuやRedisを導入しました。

導入後、サイトの表示が早くなるなど効果があったのですが、サーバーの仕様なのかredis-serverが5日経過すると落ちてしまって、動作が不安定になるという現象が起きていました。またよくよく確認した所、APCuの導入はできていたのですが、実際にデータがキャッシュされていない事がわかり、その対応法もよくわからないままです。

そこでAPCuは使えそうにないので、Redisを使えるようにしようと思い、どうしようか思案しましたが、redisを一旦休止して再起動するスクリプトを作成して、cronで一日1回スクリプトを起動させるようにしてみました。

#!/bin/sh
redis-cli SHUTDOWN SAVE
redis-server /home/username/local/bin/redis/redis.conf &

SHUTDOWNを大文字で入力しなければいけないことに気がつくまで少し時間がかかりましたが、一応、このスクリプトで一度サーバーを落としてから再起動することをRedisのログで確認しました。これでうまくいくでしょうか。

追記
この方法はうまくいっているようです。
cronを1日1回ではなく、3日に一度にするようにしました。
redisが落ちているのかを確認する方法とかを調べていましたが、自分で落として再起動という案は素人なりに良いアイディアでした。

サイトのメンテナンス

近医で胃薬を処方してもらおうと思っていたら、今日は休日…。ということで、ちょっとサイトのメンテナンスをしました。

ownCloudは導入直後はファイルの転送が多くなるため、サーバーには負荷をかけているようですが、動作自体は順調で便利です。来週からはノートPCをあまり持ち運ばなくて良い生活にしようと思います。

一応、セキュリティを考慮してSSLを導入しようと思っていたのですが、レンタルサーバーの方で、共有SSLという形で使えることが分かったので、https:// から始まるURLに設定変更して、すぐに利用できるようになりました。

ついでに、古いサイトで使っていたxoops Cubeが文字化けして、管理画面も開けなくなってしまったので、こちらも.htaccessでリダイレクトを設定して、アクセスできなくなった旨を伝えるページに誘導するようにしています。ブログのデータは残してあるので、復活させたいですが、クラウドの導入ほどは簡単ではないので、冬休み辺りで再検討します。

備忘録的追記

ついでにキャッシュ関係について情報を集めて、対応してみました。まずAPCuについては、こちらを参考にインストール

% cd $home
% mkdir src
% cd src
% wget http://pecl.php.net/get/apcu-4.0.8.tgz
% tar zxvf apcu-4.0.8.tgz
% cd apcu-4.0.8
% phpize
% ./configure
% gmake

サーバーのコントロールパネルでのphp.iniへの設定、
extension_dir=/home/username/src/apcu-4.0.8/modules/
extension=apcu.so

ownCloudのconfig.iniに設定を追記した。(もっと新しいバージョンでも良いかもしれません)
'memcache.local' => '\OC\Memcache\APCu',

そのあと、こちらにあるAPCuとOPcacheの推奨設定をサーバーのコントロールパネルからphp.iniに書き込む。一応、phpinfoで設定値が変更されたことを確認する。

デフォルトの設定のままでは中間コードのキャッシュが2秒なのでそれを600秒に伸ばします。また、fast_shutdownが無効なので有効にします。これによりセッションの切断が早くなりPHPの稼働効率が上がります。

opcache.enable = 1
opcache.enable_cli = 1
opcache.memory_consumption = 128
opcache.interned_strings_buffer = 8
opcache.max_accelerated_files = 4000
opcache.revalidate_freq=600
opcache.fast_shutdown=1

OPcacheは、オペコードをキャッシュしてくれますが、データのキャッシュは提供されませんので、APCuを設定します。

apc.enabled = 1
apc.enable_cli = 1
apc.shm_size = 64M
apc.ttl=7200

測定まではしていないけれど、フォルダの変更などのスピードが早くなりました。ついでに、こちらのブログの方も表示が早くなったような。

備忘録的追記の追記

結局、redisもこちらを参考にインストールしてみました。
$ cd
$ mkdir src
$ cd src
$ wget http://download.redis.io/releases/redis-3.2.7.tar.gz
$ tar xzf redis-3.2.7.tar.gz
$ cd redis-3.2.7

とした後に、インストールするフォルダを指定するために、src/Makefile ファイルのPREFIX?=/usr/local部分に適当なパスを指定、既にpathが通っているところにしておいた。ただし、ここで最後に/をつけてしまい、何度か失敗した。
$ gmake
$ gmake install
$ redis-server
で起動できているみたい。

ownCloudの方は、マニュアルに沿ってconfig.iniを追記し、Wordpressについては、Redis Object Cacheプラグインを導入。
ownCloudのエラーメッセージは殆ど消え、ログにはエラーもない模様。

ownCloudを試してみました

仕事の合間に、ownCloudをレンタルサーバーにインストールして使い始めました。

FTPでサーバーに転送して、少々データベースの情報を入力する程度なので、10分ぐらいで準備は完了しとても簡単でした。色々「キャッシュを使え」といった類の警告が管理者向けに出てきて、このあたりのことをするほうが良さそうなので、少し試してcronは設定しましたがレンタルサーバーなので、若干融通が利かないところもあり(サーバーの再起動とかできないので…)、そこに対応するまでは詳しくもないし、ネット上の情報もあまりないのでやめておきました。
それでも個人で使う分には十分なスピードで同期してくれていると思います。バックアップ的な意味も込めて、ノートパソコンに入っていた講義資料や研究の資料を約10GBのデータを、同期用の別フォルダにコピーしてクラウドとの同期をはじめました。

使用感はDropBoxと似た感じで、今のところ違和感はありません。

それなりの量があるので、同期には時間がかかり、断続的ですが約1日かけて、今朝には終わっていました。容量にはまだかなり余裕があります。あとはサーバーの負荷の制限にかからなければ良いのですが。

これでほとんど外付けHDD的に使っていたノートパソコンを持ち運ばなくて良い生活になりそうです。(1kgちょっとのPCを持つ持たないとかいっている体力の方を改善すべきでしょうね…)