カテゴリー
PHP

[定期]PHPのAPCを使う時は SafeApc を使おう

最近apcの話をしてるときにSafeApcの事を知らない人がいたのでこちらにもメモ。

composer 一発でインストールできて、インターフェイスもAPC直で使うのとほぼ同じです。
詳細は上にあるnazoさんのブログエントリを見てもらうのが分かりやすいのですが、違いとしては1リクエスト中での時間ずれによるキャッシュの意図しない破棄をふせげるのと、キャッシュのオールクリアを安全に行えるようになっている所です。

APC がいいのか memcached (とかRedis)がいいのか問題

例えばロードバランサーの後ろにフロントサーバが50台くらいあるような環境でキャッシュサーバとしてmemcachedを用意した場合、でかいオブジェクトをSerializeしてまるごと突っ込むようなひどい運用をしているとキャッシュデータが大きくなってネットワーク帯域に負荷がかかったりする事があります。
APCを利用すると、各フロントサーバー内で自前でキャッシュデータを持つ事になるしプロトコル的にネットワーク通信が行われないので帯域の心配をする必要がなくなります。これはfetchとstoreの速度面でもメリットがあります。
一方でキャッシュコントロールという観点でいうと各フロントサーバーの上にキャッシュを作るAPCの場合、キャッシュがのってくるまでの時間がかかる上に、システムのバージョンアップに合わせてきれいにキャッシュをスイッチするのが面倒です。

どっちがいいのかは環境や構成によって変わってくると思うのでそれぞれのメリットとデメリットを比較して状況にあう選択をしたいですね。(技術だけで判断するのが正解じゃなくて、例えば自前で全部構築するならAPCでインフラエンジニアとやってるならキャッシュサーバたてるとかね…)

カテゴリー
PHP

wp-cronをcronから実行する

wordpressにはwp-cronという擬似cronを実現する仕組みがあって、ユーザーアクセスに合わせてcronタスクを実行するんですが、
これがたまにすごく時間がかかる事があるようで、たまたまアクセスしてきたユーザーをおまたせするのはよくないなということで
cronから実行するようにしてみました。

wp-config.phpに

define(‘DISABLE_WP_CRON’, ‘true’);

を追加したあと、crontabに、

10 * * * * /usr/bin/curl http://ブログのURL/wp-cron.php

を追加するだけ。

ただ、DISABLE_WP_CRONを見てCRONが使われてないと判断するプラグインがあるので注意が必要です。

参加人数約60人の大規模なイベントで、参加者の中には本やブログで名前を拝見するすごい方々ばかりだったので緊張しました。また、その逆に就活中の方なんかも来ていて、幅広いなあと思いました。

内容はPHPちょっとはじめてみてコード書けるようになってきた人向けです。参加者の話を聞いた感じだともう少しレベルをあげてもよかったかもしれない…

会場は GMO Yours だったのですが、すごく綺麗で良い所でした。こういう場所を勉強会の会場として貸し出していただけるのはとてもありがたいですね。

こういう勉強会に参加したのは久しぶりなのですが、いろんな人に会えるのは良いですね。

もっと上手にプレゼンできるようになりたいなー。