2017年01月18日

php7.1 に opcache をインストールしてみた

PHP7.1ですでに高速化に成功した感じがあるけど、以前APCを入れて効果を実感したことがあるので、今回も同じような機能がないか探してみた。

昔はAPCでPHPのコードをキャッシュして高速化してたけど、どうやら今は本家 Zend の OPcache がオープンソースになったので、APCからキャッシュ機能が分離して OPcache として配布されているとのことです。

今回は remi だったので簡単にインストールできた。

メモ:
# vi /etc/yum.repos.d/remi-php71.repo
[remi-php71]
enabled=1

# yum install php-opcache php-pecl-apcu

# php -i | grep opcache


簡単なテスト環境だとキャッシュの威力も小さいので体感は難しいけど、多くのファイルを読み込むフレームワークなどを使っていると大きな効果があると思います。

ちなみに OPcache の設定は /etc/php.d/10-opcache.ini
特に設定を変更しなくてもキャッシュは有効になっているようです。

試しに opcache.revalidate_freq=20 にしてみたが、場合によっては性能に違いが出てくるかも
ただし、タイムスタンプのチェックの間隔が開くので、デプロイなどの工夫が必要になると思われるので注意が必要ですね。
ラベル:opcache
posted by zjapan at 16:02| Comment(0) | TrackBack(0) | PHP | このブログの読者になる | 更新情報をチェックする

2017年01月06日

mongodb 3.4 認証:ユーザー追加などメモ

CentOS6から7へアップデートしたついでに、mongodbも2.xから3.4へアップデートしてみたら、ユーザー関連の設定方法が違ってて少しハマったのでメモとして残しておきます。

参考
https://docs.mongodb.com/manual/tutorial/enable-authentication/
など

mongodb 2.xの時は、簡単な設定しかなかったんだけど(後DB毎にユーザー設定するとか、ちょっと変だったw)
mongodb 3.xではコマンドが変更されて、一元管理的になってました。

・ユーザー登録例
まずは管理者権限のユーザー登録です。
use admin
db.createUser(
{
user: "myUserAdmin",
pwd: "abc123",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)


mongodb 3.4ではデフォルトでユーザー認証が有効になっている模様(2.xの時はデフォルト無効)
ですので最初に管理者権限のユーザーを登録する必要があります。
2.xの時と違って、認証なくてもmongodbに入れるようになっているので、それから admin DBへ移動してユーザー登録します。
その後 admin で認証すれば管理者になれます。

認証例
use admin
db.auth("myUserAdmin", "abc123" )


・一般ユーザーの登録例
use test
db.createUser(
{
user: "myTester",
pwd: "xyz123",
roles: [ { role: "readWrite", db: "test" },
{ role: "read", db: "reporting" } ]
}
)


mongodbへログインするには以下のようにもできます。
# mongo "mongodb://myTester: xyz123@localhost:27017/test"


・その他
ユーザー登録をアップデートするときは db.updateUser でやるらしい。

追加
さくらのVPSでcappedに3000件登録するテストをしたら
CentoOS6 mongodb 2.4 : 約13秒
CentoOS7 mongodb 3.4 : 約6秒
とパフォーマンスがアップされてました。
mongodb 3.4の方もほとんどチューニング等してないけど、WiredTigerのおかげかも?
posted by zjapan at 14:07| Comment(0) | TrackBack(0) | DB | このブログの読者になる | 更新情報をチェックする