最近管理している(といっても半放置状態;)サイトの一つがあまりにも重い。特に23時から25時にかけては大変な事になっていて、管理者の自分がコンテンツページをなかなか開けずにイライラしている有様だ。で、色々と調べてみたところ、ダウンロードツールか何かを使ってデータを根こそぎ持って行っているユーザーが多数いる事を発見した。IPを見たところ日本からのアクセスではないっぽい。
そこで、以前から導入を検討していたmod_limitipconnをApacheに入れることにした。mod_limitipconnは、同一IPからのコネクション数は○個まで、みたいな感じで制限してくれるいい奴らしい。説明を読んだところ、いかにも簡単そうで超初心者の私でも10分ぐらいで導入できそうだ。
そこで早速インストールに挑戦してみたのだが、全く上手くいかない。英語で意味不明なエラーが出るだけだ。さらに意味不明のエラーを翻訳で日本語に訳してみたりしたが、謎の日本語文が生成されただけで何の解決にも至らなかった。
仕方なく、googleに助けてもらいながら2時間。apxsを使うためにhttpd-develパッケージをインストールしたりして、ようやく目的の機能を追加することができた。めちゃくちゃ時間はかかったが、こういう試行錯誤は非常に勉強になる。
で、どれだけサイトが軽くなったか様子を見てみたが……
ほとんど軽くなっていなかった(泣)
とりあえず来週末に、また挑戦しなければ……
タガヤっす。
人間の成長って常に上を向いてるだけじゃないんだなーって思うことが。
起業した当初、自分がサービス業だからか、飯食いに行ったトコのサービスの善し悪しで、一喜一憂してたときがありました。
しかし、そんなことを深く考えなくなれたんです。
この価格に見合うサービスってこんなもんさ。
満足できるサービスを求めるんだったら、それなりのお店に行くべきなんだと。
それからムカつくことがなくなり、精神的に平和でいられたのです。
人間的に成長したなーって感じられたんです。
しかし最近また、提供されるサービスに一喜一憂するようになりました。
んで、考えてみた結論。
不景気だから。
サービスまで手が回らないぐらいに余裕がないんだろうと。
しかし、そんなことをしてたら、来てくれる客さえ失うのに。
完全にマイナスのスパイラルなんだ。
景気が悪いから人を減らす。
人を減らしたらサービスが低下する。
サービスが低下したら客が減る。
オレは支払うコストに見合うものしか求めてない。
吉野家に行くのは、マズくない牛丼が安く早く出てくるから。
生ビールが500円の店に行くのは、雰囲気を気にせずに呑めるから。
静かなBARで呑むのは、しっとりと会話を楽しみたいから。
そう、それぞれに期待値があり、その期待値に応えなければならない。
吉野家で牛丼が5分以上出てこなければクレームが入るだろう。
そういうことさえ理解できてないバカがいると、
それだけでムカつく。
最近だけで2度と行かないと決めたお店が2件もできた。
あーあ、オレの心が狭くなったのかなあ。
ちょっとだけ不安。
もっと本を読もうっと。
タガヤっす。
トラック用品の販売サイト、パーマンで不具合が発生し、半日ほどメンテナンス画面を表示させなければいけない事態になっていました。
今は復旧してますが。
インターンと共に成長していってる感が(涙)
細かいミスはしゃあないので、その都度誠意を持って対応するだけなんですけどネ。
まあその甲斐もあってか、
MySQLで発生していた諸処の問題はすべて解決しました。
今後のPR活動やマーケティング活動に期待してるでみんな!!
◆
なんか「物を売る」ということが楽しくて仕方ありません。
第1号のお客さんとか、抱き締めに行きたかったぐらい。
すげー遠いんで断念しましたがw
こうなってくると、メーカーの対応とか気になってきます。
ウチを経由したお客さんに不都合なことしてへんか?とか、
メーカーの対応に口出ししそーな勢いです。
みんなはどーしてるんだろう??
タガヤっす。
先日、久しぶりにジオベック望月社長と呑みに行きました。
約2年以上振りの再会でした。
ある案件で社名をひさしぶりに聞いたので、ひさしぶりに呑みに行かないかとメールしたら、速攻で「行くw」と返信をもらって実現した次第でして。
経営者同士はフラットな関係を維持するのが、良好な関係を維持できると思ってます。どっちが上とかない。売上とかで会社の上下はあるとは思いますが。
だから、「上からの物言い」ではないことを最初に断っとくw
◆
以前はシステム会社の社長には見えないかなり男前な風貌でして、それは今も衰えることはないんですけど、ひとつだけ大きく変わった点が。
すげーITレベルが上がってた。
以前なら、技術のことは信頼できる技術者に一任してた彼が、その後いろいろあったんでしょう。自分で勉強して知識を蓄積し、技術者と対等に会話できるレベルまで到達してました。
これがどれだけすげーことかと。
とにかく、イケメンなくせにIT気取りやがってっていう感じじゃなくなってました。完璧にIT系の社長さんでした。
ちょっとくやしいのでいじめておきました(・∀・)
しかし本音では、これが経営者としての正当なレベルアップなんだろうと関心した次第です。ちなみにオレは未だに課題が山積しておりまして(涙)
オレもレベルアップするぜー!!
不器用なのよ。
ま、こんな自分が大好き(・∀・)
オーバーチュアに多くの広告を出稿する場合、管理画面からちまちま設定するのは非常に時間がかかります。
幸いにもオーバーチュアにはCSVをインポートする機能があり、一括で広告を設定することが可能です。
ただ、このインポート機能がくせものです。
CSVのテンプレートがダウンロードできるので、それに追記してインポートしたのですが、形式がおかしいやら文字コードがUTFじゃないやら広告グループIDがないやら言われてエラーになります。
一応、エラーログがダウンロードできるので確認し、エラーメッセージどおりに修正しましたが、インポートできませんでした。
要するに言われた通りにしたらダメなんです。
だいたいエラーメッセージでは「インポート形式が変わりました。ヘッダ行を削除してください」と言ってるのに、CSVテンプレートのところには、「ヘッダー行を変更しないでください。」とおもいきり書いてます。どっちだよw
で、いろいろ試行錯誤してうまくいった方法を紹介します。
- 管理画面でキャンペーンを1つ作成
- 広告グループを1つ作成
- キーワード、広告を1つ作成
- キャンペーンをエクスポート
- エクセルでエクスポートしたCSVを開く
- すべての広告グループ、キーワード、広告、リンク先URLなどを入力
- キャンペーンIDを全行コピー
- その他の設定が同じならコピー(広告グループID、広告ID、キーワードID、チェックサムは入力しない)
- 最初に作成した広告グループ、キーワード、広告の行を削除
- 上書き保存
タガヤっす。
表題のとおり、移行が完了しました。
めっちゃ早くなりました。
いろいろたいへんな部分もあったけど、実質1日で移行できたのは良かった。データも少なかったし。
今回この作業をメインで行ったのは当社のインターンでして、元々は制御系Cプログラマだったのです。
入社時の彼はWEB系未経験でして、EC-CUBEのカスタマイズからPHPを教えたんです。最初の1週間は、ダイジョブか?とみんな(本人もw)が思う状態でしたが、1回の助け舟だけでここまで成長しました。
素質もあったかとは思います。元々プログラマだったので。
しかし本人のやる気と根気が、その成長における「肥料」だったと確信してます。人が何かを覚えるとき、やはりその「本人」に掛かっていると再認識したわけです。
本人のやる気と指導方法がピッタリと一致すると、人は1ヶ月で変われるという好例なのかも知れません。
ボクの部下に必要な「素直な心」も良い方向で作用してるように思います。
しかしビックリです。
当初は3ヶ月のインターン期間を明確に設定して、そこでダメならダメだろうと思ってました。約2ヶ月足らずで、当社に必要な技術者になってくれました。
懸念事項もないわけではないですけど、彼に対する期待値が飛躍的にアップしました。
今晩の酒はうめーぞ、きっとw
タガヤっす。
DBの違いによるEC-CUBEの動作速度を比べるために、ローカルのテスト環境でいじり倒した結果の発表です。
PostgreSQLの圧倒的勝利
びっくりするぐらい違う。
MySQLのJOINの弱さは、以前テストしたことがあったんですけど、MAXで3つのデーブルしかテストしませんでした。
これほどまでに性能の低下が発生するとは予想してませんでした。
まだまだ修行が足りませんネ。反省しました。
何も考えずにMySQLで導入した結果、不必要なオーバーヘッド発生させてしまいました。
事前にどちらを採用するか、調査することを怠っていました。
これにより、社内で膨大な工数を発生させてしまいました。
精力的に移行作業を行ってくれたインターンや、テストを繰り返し行ってくれたスタッフみんなに感謝です。
うん、自覚してる。
その犯人はオレ(涙)
よく使ってるMySQLでいいんじゃネ?的な対応が一番嫌いなのに、それをオレ自身がやってしまっているという矛盾に気付くことができました。
システムを開発するなら、クライアントのニーズにぴったりなソリューションを提案しなければならない。自社都合で、「Javaが得意なんでJavaでやらしてください」的な発想はダメだと頭では思ってるのに、実践できてない自分の至らなさを痛感しました。
自社ので良かった。本当に良かった。
クライアント仕事でこんなことをしてはダメですから。
いやー、学ぶことが多かった。
性能テストはやはり欠かしてはいけないですネ。
◆
副産物として得るものも多かったです。
以前は、トランザクション処理を重視する案件が多かったので、Postgresを採用することが多かったんですが、最近では、単純なSQLの処理速度を求めてMySQLを採用することが多かったんです。3年前に速度テストをした結果です。
しかし、今のPostgresは非常に高速になってました。
正当に進化している感じがわかるんですけど、以前の知識がそのまま応用できるレベルを逸脱してます(涙)
まず、ロールってなに?って感じですw
Postgresのスキーマって?とか、そんな初歩的なことさえ理解できてません。
#ドキュメントと恋人状態です。
あー、勉強せなアカン「ネタ」だけが増えていく・・・
・Objective-C
・COCOA
・PostgreSQL
・iptables4&6
・IPv6
うん、どれか削ろうっとw
タガヤっす。
CentOS5 + PHP5.1.6 + MySQL でEC-CUBEを動かしてます。
先日、トラック用品の販売、パーマンに、商品を2000点ほど追加したんですが、劇遅になってしまいました。
MySQLのチューニングを行って3倍早くはなりましたが、それでもひとつのクエリで20秒以上も処理時間がかかってしまいました。
キャッシュサイズを大きくしたので、1回処理されれば早くはなるんですけど、1回目のクエリ処理時間が3秒以内にならんと運用に耐えません。なんだこりゃ?
ってことで急遽追加したデータを削除して、本格的に調査しました。
・EC-CUBEはPostgreSQLがいいらしいよ?
・商品点数2000を超えると厳しいよ?
・SQLをチューニングしちゃいなよ?
・Pear:DBじゃなく、Pear:MDB2に変更すればいいよ
出てくる出てくる(汗)
で、当社での対応は以下のとおりを予定することにしました。
・追加した商品は工具なので別サーバで運用してみる。
・PostgreSQLで運用してみる。
・単純にインストールした状態でレスポンスを計測して、
どちらのDBMSにするか決定する
・PDOを採用する → データアクセスクラスの書き換え
・SQLチューニング
を予定しております(汗)
上記の経緯は技術エントリとしてアップしていくことにします。
ウゼEEEEEeeeーーー!!
タガヤっす。
最近、完全に夜型でして、AM4時ぐらいまで仕事して昼まで寝るという生活習慣になってます。いろいろスイマセン(汗)
年末からか、意味のわからんアクセスが増えてます。
サーバを管理している人は注意してくださいネ。
中国、韓国、台湾からのアクセスがハンパないッス。
JCERTも注意喚起していますので、一度チェックしてみてください。
ウチがやってる対応を書き出しておきます。
◆
・SSHはポートを変える
→ ポートは言えませんが、
ピンポンダッシュ的なアクセスはなくなりました。
・suできるユーザを限定する
→ FTPを許可するユーザを管理ユーザと同じに
しておくのはよくありません。
・SMTP認証を行う
→ スパムの送信サーバにされてしまいますよ。
絨毯爆撃のようなアクセスが絶えません。
・FTPは使わない or パスフレースを20文字以上設定する
→ できれば、IPでアクセス許可したりの設定は必要です。
・FTPユーザは、他のユーザとリンクしない
→ FTPだけしかできないユーザで管理するんですよ。
他にも細かいテクニックはありますけど、上記が運用されてないと、セキュリティレベルは低いと判断してもらっていいでしょう。
またデータベースをグローバルで運用している場合、
・データベースのポートを変更する
・データベースの接続をIPで制限する
も有効です。
クラックされないための施策は必要ですよ。
検索エンジンにxml形式でサイトマップを登録したい時、私は秀丸の「置換」でxmlサイトマップを生成しています。サイトマップを作ってくれるWEBサービスも色々とあるのですが、やっぱり手元で出来るのが一番手軽で安心ですね。
やり方はすごく簡単。
(文章にすると若干ややこしそうに見えますが……)
1)下記のような1URLごとに改行されたURLのリストを作っておいて、
—————————————————————–
https://www.google.com/accounts/ServiceLogin?service=sitemaps
http://siteexplorer.search.yahoo.co.jp/
http://webmaster.live.com/
—————————————————————–
2)Ctrl+Rで「置換」用の窓を開き、「正規表現」にチェックを入れる。
3)「検索(上の入力ボックス)」に以下の文字列を入れる。
—————————————————————–
^.*\f\n
—————————————————————–
4)「置換(下の入力ボックス)」に以下の文字列を入れる。
—————————————————————–
\t<url>\n\t\t<loc>\0<\/loc>\n\t\t<lastmod>2008-11-25T03:03:06+00:00<\/lastmod>\n\t\t<changefreq>weekly
<\/changefreq>\n\t\t<priority>0.5<\/priority>\n\t</url>\n
—————————————————————–
※ 改行しないで下さい。
※ <lastmod>や<changefreq>や<priority>の部分は適宜書き換えて下さい。
5)「全置換」を押す。
6)生成された文字列の一番上に以下の文字列を付け足す。
—————————————————————–
<?xml version=”1.0″ encoding=”UTF-8″?>
<urlset xmlns=”http://www.sitemaps.org/schemas/sitemap/0.9“>
—————————————————————–
7)生成された文字列の一番下に以下の文字列を付け足す。
—————————————————————–
</urlset>
—————————————————————–
以上です。












最近のコメント