crontabにwgetを設定したときにちょっとはまった罠
バリュードメインでダイナミックDNSのIPアドレスの更新でちょっとはまったので自戒メモ。
「ダイナミックDNS設定情報」ページの「アクセス先の例」の通りのURLに対して、
wgetでアクセスするとIPアドレスを更新できるはずなので、次のようにcrontabにセット。
0 * * * * wget -O result.log http://dyn.value-domain.com/cgi-bin/dyn.fcg?d=domain.com&p=xxxxxx&h=*&i=
ところが、result.logには
status=2 Invalid Domain and Password
なんじゃいな?ということであれこれ調べたんだけど、結果、
wgetのパラメータのURLの部分を"(ダブルクオテーション)で囲んだらOK。
0 * * * * wget -O result.log "http://dyn.value-domain.com/cgi-bin/dyn.fcg?d=domain.com&p=xxxxxx&h=*&i="
result.logには
status=0 OK
切ないほどあっけないけど、けっこう時間を使ってしまった。。
同じ思いをする人がいなくなりますように。恥ずかしながらエントリー。
社内のMySQLのセミナーに参加したときのメモ
オラクルの方が社内にきてくれてセミナーをしてくださるとのことで、
内容がMySQLに関してのことだったので参加してみました。
スピーカーは梶山隆輔氏。(有名人なので名前出しちゃいます)
2時間という時間のなかで、たくさん重要な話しもあったはずですが、
特に僕の興味にひっかかった以下の内容でメモを残しておきます。
オラクルのMySQLに対する方針・姿勢
- オラクルの組織のなかでMySQLは独立した組織となっている。(つまり、オラクルの元からある組織・部署から強いを干渉を受けているわけではないということと受け取った)
- オラクルのMySQLに対する約束
- GPLとエンタープライズ版で性能に差をつけることはせず、ユーティリティやサポートで収益化を図る。
- MySQLのwindows版を使っているユーザーが意外に多いのでそちらにも力を入れるつもり
- ORACLEとMySQLを一括管理できるような管理ツールを開発中
こぼれ話
MySQL Clusterについて
MySQL5.5について
- innodbがデフォルト。(このinnodbはこれまでのinnodb Pluginにあたる)
- innodbいろいろ高速化。
- ロールバック
- バッファプールをマルチなど
- PERFORMANCE_SCHEMA
- リカバリ性能(リカバリ時間)の向上。今までの10倍〜30倍
- セミシンクロナス(準同期)レプリケーション。
- これまでは非同期のレプリケーション
- マスターはbin-logに更新情報を書き込んだら処理終了。スレーブはマスターのbin-logを読んでリレーログ(スレーブ側)に書き込み実データに反映。
- 準同期の場合、マスターはbin-logに更新情報を書き込んだら、指定のスレーブのリレーログに書き込まれるのを待ってから、処理を終える。(スレーブのリレーログに書き込み、実データに反映されるまで待てば完全同期だがそれは意味がない)
- データを失うリスクを軽減し、信頼性がアップ。
- リレーログへの書き込みを待つことで若干のオーバーヘッドは発生する。
- スレーブが複数あるとき、準同期を行うserver-idを指定することが可能。
- binlog-formatはROWでもSTATEMENTでもOK。ただし、ROWで大量の更新があった場合は時間がかかる。
- これまでは非同期のレプリケーション
その他、MySQL Workbench 5.2 や MySQL Cluster 7.1、エンタープライズ版などの製品の説明もありました。
いやしかし社内で貴重な話しを聞くことができてとてもよかったです。
梶山さんをはじめオラクルのみなさま、ありがとうございました。
DeNA Technology Seminar #2 に行ってきた
DeNA Technology Seminar #2 を開催します - Technology of DeNA
今回のテーマはMySQLで、以下、三つのセッション。
この日急遽参加を決めたので、PCないしロクなメモとれず。。
詳しい内容に関してはよくまとまっている以下のエントリーや記事をどうぞ。
DeNA Technology Seminar #2 に参加してきました。 - モノノフ日記
MySQLハックの最前線が垣間見えた 「DeNA Technology Seminar #2」:CodeZine(コードジン)
以下、自分用の備忘録&事後つけたしメモ。
- Spider
- 斯波さんのブログ。Wild Growth 日本語
- SpiderはDB sharding(簡単に言うとDBを複数のサーバに分けてデータやリクエストの増加に対応)を簡単に行える
- sagool.tv、KADOKAWord.jp、マイクロアドで導入実績あり。
- 質疑応答でreshardingの話題でもちきりだったけど、それって何?おいしいの?このあたり見れば分かるかな。漢(オトコ)のコンピュータ道: まるで魔法のようなストレージエンジン??VP for MySQLによる驚愕のテーブル操作テクニック。
- サイズの大きなデータを扱うときには試す価値大あり。あぁ、あいつをshardingしたくてたまらないぜ。君もあの娘をshardingしちゃいなよ。
- MySQL handlersocket plugin
- MySQL5.5&トラブルシューティング
- 奥野氏のブログ。お世話になってます。漢(オトコ)のコンピュータ道
- スライド公開されてる。MySQL 5.5 Update #denatech
- innoDB plugin 1.1が5.5ではデフォルト。innoDB pluginはいいことづくし。
- innoDB pluginについてはこちら。漢(オトコ)のコンピュータ道: InnoDB Pluginことはじめ。快適ストレージエンジン生活はじまる!
- とりわけ気になったのが、Semi-Synchronousレプリケーション。マスターがクラッシュしても最低一つのスレーブが更新されているというもの。これにより、スレーブのバックアップとしての信頼性がグンとアップ。
- 奥野氏いわく、MySQL5.5は性能を向上しつつ利便性も向上している。正しい方向に進んでいる。
- MySQLのトラブルへの対策は唯一 MySQLをよく知ることしかない。肝に銘じよう。
- サプライズで奥野氏の最新著書『エキスパートのためのMySQL運用+管理 トラブルシューティングガイド』2冊をかけてじゃんけん大会。負けた。。
えっと、まとめると
- Spider試したいっ!
- MySQL5.5 GA版はよこい!
ということで。
それとこれこれ。奥野氏の最新著書『エキスパートのためのMySQL運用+管理 トラブルシューティングガイド』
エキスパートのためのMySQL[運用+管理]トラブルシューティングガイド
- 作者: 奥野幹也
- 出版社/メーカー: 技術評論社
- 発売日: 2010/06/12
- メディア: 大型本
- 購入: 16人 クリック: 204回
- この商品を含むブログ (35件) を見る
rename() で Operation not permitted という WARNING が出た
PHP: rename - Manual
こちらファイルの移動(linuxのコマンドで言うところのmvのような操作)を行うためのPHPの関数。
このrename()を使用したところ Operation not permittedというWARNINGが発生したので、調べたことをメモ。
そもそもの話、このwarningが出てもファイルの移動自体は正常に行われていた。
じゃあなんでwarningなんて吐くの?ということでちょっと調べてみた。
ググると次のような英語のページがヒット。
http://bugs.php.net/bug.php?id=50676
rename() can only work "normally" when operating on the same volume.
同じディスクのボリュームでのみ「正常に」動くよ、ってことらしい。
確認したところ(dfコマンドで!)確かに違うボリュームへの移動しようとしてた。
まぁこれでwarningの理由はわかったんだけど、すごく気持ち悪い。。
さきほどのページでバグレポートを書いた人が
And as I pointed out in the original bug-report, the source-file actually is deleted, so there is no need for the error message.
ちゃんと動いているんだから、エラーメッセージはく必要ないじゃん!!(意訳)
って言っているのに激しく同意。だってうざいんだもん。
ちなみに
[SOLVED] PHP rename() not permitted
ここで言っているようにrename()を以下のような処理に変えておくのがきっとベスト。
if( copy('/home/frontend/uploadclip.xml', '/var/media/45ecfe0fb82968cd0244666d3b92ac4a2658d844') ) { unlink('/home/frontend/uploadclip.xml'); }
< |
第三回ライブドアテクニカルセミナーに行ってきた
livedoor Techブログ : 第三回 ライブドア・テクニカルセミナーのお知らせ
こちらのライブドアテクニカルセミナーに参加してきた。
以下、めっちゃ粗いメモ。しかも途中眠くなったりしてごっそり抜け落ちている。
クラウド時代のWebストレージ/データベース戦略
- スピーカー、池邉智洋氏、ライブドア執行役員CTO
- 利用者から見たクラウド
- 物理サーバ、ネットワーク意識しない
- 高可用性
- 柔軟課金体系
- 提供者
- 高価な機器に依存しない=スケール合うと
- 異ソース有効活用
- 管理運用の手間の効率化
- ライブドア的
- コスプレコミュニティcure面白そう
- ライブドアでは画像アップサービスが多い
- ライブドアが求めるストレージ
- サービス名はSTF
- HTTPを利用したストレージサービス
- 参考にしたのは
- mogilefs
- amazons3
- rackspace cloud files
- PROS
- cons
- ファイルシステムとしてマウントできない
- 追記できない
- すでにあるオブジェクトは一部書き換えできない
- design
- REST API
- リクエスト
- GET,PUT,DELETE
- バケットの作成、削除
- オブジェクトの取得、作成、更新、削除
- レプリカの作成はヘッダで指定
- example
- STF internals
- オープンソースで公開予定
- 現在容量は20TBあって使用は10数TB
自分たちのサービスのために作るって言っていたのが印象的だった。
オープンソースで公開するというのもライブドアらしくていいな。
ライブドア流クラウド的サービス
- スピーカー、ライブドア田畑佳則氏、ライブドア市川剛氏
- ライブドア流って
- ウェブサービスに強い
- DATAHOTEL(データセンタ)
- amazonec2利用中の企業は大部分はextra large 契約
- webフロント(ウェブサーバ)をクラウドに!
- 短期間でリソースの増減可能
- バックエンドは専用サーバに
- 試行錯誤
- ぽこぽこクラウド!
- 仮想化技術
- 検証ソフトウェアはparallels
- ネットワークの従量課金は未定話し合い中
- cactiで負荷監視
- 同じ顧客のインスタンスは同じところで動かさない
- ぽこぽこはデータベースには対応しない。フロントだけぽこぽこ。
後半眠気に襲われてJリーグの途中経過など見てたので、ごっそり抜けている。要復習。
livedoor Readerの新機能とは?
- スピーカー、ma.la氏
- 趣味で自社サービスのセキュリティ監査って!
- サーバサイドについて
- 180万のRSSをクロールしている
- データ圧縮して1TB
- 過去記事削除やってない
- 1,3時間おきにクロール
- パブサブハブハブはリアルタイム
- クローラ q4mによるリレー
- broker feed id q4m
- cronで1分おき
- fetcher リクエスト投げる
- coroを浸かった並列処理
- 同時接続数を制限
- parser
- 独自処理、既存モジュールはかゆいところに手が届かない
- CPUパワーに依存、並列数は意味ない
- updater
- DBに書き込む
- 記事のふりわけ SKIP INSERT UPDATE SILENT_UPDATE
- broker feed id q4m
- 高速化ノウハウ
- 既出フラグをfeedごとにまとめた
- ストレージとネットワークIOの節約
- 更新されていないfeedを判別する
- キューサーバ自作2種類
- 高可用性は落ちないことより落ちても平気なように
スライド多過ぎww後半は早過ぎてとてもついていけなかった。要復習。
まぁなんせ生ma.laを見ることができたのでそれだけで満足。
第50回PHP勉強会@関東に参加してきた
第50回PHP勉強会@関東 - events.php.gr.jp
こちらの勉強会に参加してきた。
以下、粗いにもほどがあるメモ。
mixiアプリについて
- スピーカー:weboo氏(@weboo)、mixiのなかの方
- mixiはソーシャルグラフ(他はバーチャルグラフ)
- mixiアプリを使いにきたユーザーが他の機能も使う。月間滞在時間が2:40から3:42に!
- mixi Developer Center (ミクシィ デベロッパーセンター) » mixi Connect 現在一部の企業だけが使用でき、撮った写真をそのままアップロードしたりすることもできるらしい。
- shindig=ユーザーが作成したファイルを解釈してユーザーにサービスを提供するコンテナ(違うかも?あとで調べる)
- open social 仕様準拠API + mixiアプリ専用API
- アプリが広がるのはクチコミ。マイミクを誘う機能はあったほうがいい!
- 最新版OAuth.php にバグがある。to_headerに指定が必要!
- 10秒以内にレスポンスを返せるように作らないとダメ!
- どんなアプリがヒットするか?友人と一緒に遊べないものは流行らない
- わかりやすさ
- ソーシャル性
- 巻き込み性
- 継続性
- mixiアプリモバイルの開発で、PCからアクセス可能なsandbox準備中
- 的ファイルを配信可能なサーバ準備中
スピーカーはmixiのなかの方なので、mixiアプリの概要をとても分かりやすく説明してくれた。
GREEの藤本さんの質問に答えづらそうにしていたのが印象的だったw
PHPでWEB開発を行うようにしてオープンソーシャルアプリを作る
- スピーカー:KuniTsuji氏(@KuniTsuji)、Usagi Projectの方。
- codeigniterでmixiアプリが作れないか?webサービスをそのままmixiアプリに移植したい。モバイルならいける!
- セッション管理いらない!※内部的に値は保持するが
- aタグやformタグで移動はできない。codeigniterで使う関数をカスタマイズ(anchor(),form_open)
- セッションclass拡張、認証クラス拡張、OAuthの処理を隠す(認証クラスで使用)
- 既存のモバイルサイトを構築するように開発してmixiアプリが動くようになった!
- PCではどうするか・・・、難しい。表示内容、ブロック単位にPHPで出力できるようにしたほうがいい。
PHPで通常のモバイルサイトを作るようにmixiアプリを作りたいという発想が面白いなと思った。
PCはともかく、はmixiアプリモバイルの開発の敷居がかなり下がったような気がする。
アプリの話をずっとしてきて、最後にアプリは作ろうと思えば作れるが、安定して運用していくためにインフラ周りの方が重要だと言っていたのが面白かった。
運用した気になるモバイルオープンソーシャル
- スピーカー:個々一番氏(@cocoitiban)
- PCとモバイルの違い。絵文字、js、FireMobileSimulator最高
- 公式と勝手のちがい。UID使わない(opensocialの仕組みで認証)、IP制限は信用ならない、最初から動線がある。
- 注意。外部のAPIは信用しない。返事かえらない。バグもある。愛され系ゆるふわコーディング(エラーがでました→NG)
- authoriztionヘッダとれない。BASIC認証はパースして置き換えてる。apache_request_headersを使うととれる。
- まちつく
- 最初普通のモバイルサイト。2009/9 mixiアプリ。2010/1 モバゲー。mixi会員250万人くらい。
- mixiアプリリリースしたて。1日10万人ふえてく。画像生成サーバやばい。APIかえってこない。
- 何をしたか。画像生成をキューにかきかえた。ボトルネック退治。愛され系ゆるふわコーディング。ハードウェア購入すすめる
- パフォーマンスアップのためにしたこと
- 100Mの回線足りない。画像サーバーをamazonS3に。
- サーバをEC2に(今はつかってない)
- memchached対応範囲ふやす
- 機能を企画レベルで見直し。負荷低くなるように。
- L7ロードバランサを増やす
- DBマスター分割。ORMで分割。
- 中期
- DBサーバ分割でもきびしい→ちょっといいサーバ→解決
- 機能改善
- 課金等をリリース
- 一部Q4Mへ。EC2とおわかれ、社内にもってきた方が安かった。
- まとめると、安定志向が必要。でも新しいこともやらないと追いつかない。
- キュー処理なに使ってる?Q4M、gearman、activeMQ
- PHPでデーモン化。daemontool
- ORMは使うべき。流行った場合すぐ分割できるか?トランザクションがネックになる。KVSとの透過性。
- opensocialはトラフィック対策で甘えがゆるされない。
mixiアプリリリース時の悪戦苦闘ぶりがすごく伝わってきて面白かった。対応されたウノウのエンジニアの方にで敬意を表したい。また技術的にも非常に興味深い話がたくさん出てきた。
ORMはなんとなく遅い(SQLがチューニングされてない気がして・・・)というイメージがあるのだが、ORMで分割してパフォーマンスアップしたというのはどういうことなんだろうか?後で調べる。
opensocialではトラフィック対策では甘えがゆるされないというのは、まさにそのとおりだと思った。
最後に、、、
懇親会行きたかったなぁ。LTも聞きたかったしなぁ。残念。
会場を提供してくださったコンテンツワンさま、ありがとうございました。
モダンPHP勉強会@GREE
http://atnd.org/events/2298
こちらの勉強会に参加したときのメモ
もっと知りたい名前空間
ぜんぶ見せますSPL
こちら非常に面白かったのだけど、サンプルのコードを目で追ってばかりいたので、特にメモなし。
さてもうちょっとPHPのマニュアルを見なきゃな。
PHP: 名前空間 - Manual
PHP: SPL - Manual