w3cフォーマットのdateのvistaとxpでの出力の違い

February 27 [Sat], 2010, 1:38

JavaScriptのDateオブジェクトでwindows vistaとxpで、w3cフォーマットの文字列の
出力の違いがあってハマったのでメモ。

windows vistaのfirefox ではw3cフォーマットをDateオブジェクトに直接渡して

>>> var date = new Date('2005-04-23T17:20:00Z');
>>> date.getTime();
1114276800000

で直接unix時間が取れる。

でもxpでは、

>>> var date = new Date('2005-04-23T17:20:00Z');
>>> date.getTime();
NaN

になってしまった。

結局は、Date.W3CDTF - ISO-8601日時フォーマット対応JavaScriptクラス
を使うことで無事解決

MySQL innodb plugin on ssd server

December 24 [Thu], 2009, 22:29
innodb plugin1.0.6が出たこともあり、
ssdサーバでMySQL5.1.41 innodb plugin 1.0.6をmysqlslapで計測してみたメモを残してみる。

使用サーバスペックは
Intel Xeon L5520 @ 2.27GHz x 16core
48GB RAM
120GB SSD x 4 (RAID5)

my.cnfのinnodbに関連するパラメータは下記の通り。
ignore-builtin-innodb
plugin-load=innodb=ha_innodb.so;innodb_trx=ha_innodb.so;innodb_locks=
ha_innodb.so;innodb_lock_waits=ha_innodb.so;innodb_cmp=ha_innodb.so;
innodb_cmp_reset=ha_innodb.so;innodb_cmpmem=ha_innodb.so;innodb_cm
pmem_reset=ha_innodb.so
innodb_file_per_table=1
innodb_file_format=barracuda
innodb_strict_mode=1
innodb_data_home_dir = /data/mysql_test
innodb_log_group_home_dir = /data/mysql_test
innodb_buffer_pool_size = 1G
innodb_log_files_in_group = 3
innodb_log_file_size = 256M
innodb_log_buffer_size = 8M
innodb_additional_mem_pool_size = 8M

まず単純なinsert速度。
mysqlslapで、複数のコネクションから並列でINSERTを10万回行う。

mysqlslap --user=username --password=password --host=hostname
--port=3308 --concurrency=1 --iterations=1 --engine=innodb
--auto-generate-sql --auto-generate-sql-load-type=write
--number-of-queries=100000



参考にしたブログエントリの結果とほぼ同じ傾向を示した。同時5接続以上になると明らかにinnodb pluginの方が性能が向上している。参考に取得したMySQL5.0.88とMySQL5.1.41builtin innodbの性能差はほぼ誤差の範囲だろう。
tpsの絶対値が低めなのはRAID 5構成のためと思われる。

続いて実運用に近い、--auto-generate-sql-load-type=mixedで、半分insert半分pk scanの負荷をかけてみた。

mysqlslap --user=username --password=password --host=hostname
--port=3308 --concurrency=1 --iterations=1 --engine=innodb
--auto-generate-sql --auto-generate-sql-load-type=mixed
--auto-generate-sql-guid-primary --number-of-queries=100000




innodb pluginが明らかに性能がいいのは前述の通りとして、selectを絡ませても参考程度に取得したmyisam構成での値とほぼ遜色ない性能が出ていた。
myisamとは単純比較はできないが同時接続30〜100の範囲では、僅かながらmyisam以上のqpsを出している。
既存構成のmyisamテーブルからリプレースしたいときに、大きな理由付けになるだろう。

上記サーバは現在あるwebサイトで実際にMySQL DBとして既存のHDDのサーバからリプレースして
稼働し始めたのだが、同時接続500ぐらいの夜間ピーク高負荷時でも大変安定して処理をしている。
リプレース前に多発していたslow.logも全くなくなった。
ssdサーバ+innodb pluginの今後の可能性と適用範囲は今後ますます広がっていくと思う。

test

March 20 [Fri], 2009, 9:48
To install PDO MySql in Debian/Ubuntu systems run:

sudo aptitude install libmysqlclient-dev
sudo pecl install pdo
sudo pecl install pdo_mysql

とPDOを入れようと思ったらエラー

debian:~/php/scripts$ sudo pecl install pdo_mysql
downloading PDO_MYSQL-1.0.2.tgz ...
Starting to download PDO_MYSQL-1.0.2.tgz (14,778 bytes)
.....done: 14,778 bytes
/usr/local/bin/php: relocation error: /usr/local/bin/php: symbol gzdopen, version libmysqlclient_15 not defined in file libmysqlclient.so.15 with link time reference

あとで直そ。。

test

November 14 [Fri], 2008, 0:04
自分取り扱い説明書バトン
Q1 朝起きたらまず?
トイレ
Q2 朝はパン派?米派?
おにぎり
Q3 何時に出勤?
10時
Q4 学生??
neet
Q5 お昼何食べよぅか?
ラーメン
Q6 休憩時間長いんじゃない?
そうかな?
Q7 正直、今日休みたかったょね?
yes
Q8 毎年5月病とかなる?
むしろ毎月
Q9 夏バテはする方?
あんましない。
Q10 もうすぐ夏だけど、夏までにこれだけはッて目標は??
まだ11月ですが。。
Q11 今日のコーデ、ポイントは?
モノトーン
Q12 靴高かったんじゃない?
安物
Q13 好きなブランドとかあるの??
BEAMS,diesel
Q14 朝はもちろん?
Q15 身長何センチ?
1.85メートル
Q16 体重、言いたかったら言っていいよ
かなり減った
Q17 てか、通勤時間長くない?!
てか近い
Q18 一人暮らし??
かも
Q19 あなたにとって仕事とは?
趣味
Q20 あなたにとって家族とは?
生きがい
Q21 あなたにとって今の生活は?
貧乏
Q22 あなたにとって地球とは?
神秘
Q23 あなたにとって宇宙とは?
無限大
Q24 血液型占いって当たるのかな?
どうかな
Q25 占いの館、行ったことある?
ないよ
Q26 実は超能力が………?
ないよ
Q27 生まれ変わるなら?
ネコになりたい
Q28 あなたは裏表ある人?
かも?
Q29 今までで一番の後悔は??
いっぱいある
Q30 今まで一番嬉しかったことは?
あんまりない
Q31 正直、許せない異性の行動は?
タバコ吸う
Q32 逆に同性では?
チャライの
Q33 だいぶ自分について答えられたと思う?
ぜんぜん
Q34 将来の夢、語ってよ
お金持ちになる
Q35 GWの予定は??
まだ決めてない
Q36 お酒飲む方?
のみません
Q37 タバコは?
すいません
Q38 タスポってどうなのかな?
使わないのでわかりません
Q39 今日は何時に帰宅するの?
10時くらい
Q40 何時に寝る?
1時くらい
Q41 風呂は長い方??
短い
Q42 睡眠時間どれくらい??
6時間
Q43 今更だけど趣味とか
仕事
Q44 今年の抱負をひとつ!!
もう11月ですが。。
Q45 あなたについてこれだけは言っとかないとってことある?
無愛想です
Q46 あなたを一番理解してくれてる人って誰なのかな?
まぁ親
Q47 その人に伝えたいことある?
いろいろ
Q48 ブッシュに伝えたいこともある?
Yes we can
Q49 1○年後の自分に伝えたいことある?
ない
Q50 こんなに答えてくれてありがとう。あなたの取り扱い説明書にはなれそうかな?
微妙ー

noatimeってMySQLでも効果あるのかな?

June 23 [Mon], 2008, 20:42
元々はITPROのファイル・アクセスを高速化
http://itpro.nikkeibp.co.jp/article/COLUMN/20080528/304432/
の記事を見てほんまかいなと思ったのでMySQLでも効果あるのか試してみようと思った。

物理メモリ2GBのマシンに3GBぐらいのテーブルを作って、MyBench走らせて見るとこんな結果に。



あれれ、noatime使うとデフォルトよりスループット下がってしまうじゃないか。。

辛うじて同時接続数10以上でパフォーマンスは勝っているけれど。

やはり細かいファイルじゃないと意味ないのかな。iozoneでもベンチとってみたけどやはりファイルサイズが
1MB以下とかじゃないと効果が無いようだ。

こんな記事もあるようだし。
最新のFedoraとUbuntuではrelatimeもnoatimeもいらない?

新しめのディストリビューション使ってるなら、あんまり積極的に使う必要はなさそうですね。

svnのメモ

February 01 [Fri], 2008, 15:57
subversion deleteしたファイルのの復活。

$ svn delete hogehoge
$ svn commit -m "Removed hogehoge"

削除前のリビジョンからこぴー

$ svn copy --revision 807 \
http://svn.example.com/repos/calc/trunk/hogehoge ./hogehoge
$ svn commit -m "Revived hogehoge"

[PHP] set_time_limit() とmax_execution_time

July 10 [Tue], 2007, 1:40


http://jp2.php.net/manual/ja/function.set-time-limit.php


注意: 関数 set_time_limit() と設定ディレクティブ max_execution_time は、 このスクリプト自体の実行時間にのみ影響を与えます。 system() を用いたシステムコール、ストリーム操作、 データベースクエリ等のスクリプト実行以外で発生する処理にかかった時間は スクリプトが実行される最大時間を定義する際には含まれません。


ガーンset_time_limitでDBコネクションのクエリタイムアウトはキャッチできないのか・・
気付かずにテーブルロック監視で使えるかと思ってターヨ。道理で検知できなかった訳だ。。
こりゃ一部監視ロジックを作り変えなくちゃならんな・・・

MySQL+SennaのN-gram検索が遅くなる件・・

June 24 [Sun], 2007, 19:12
MySQL+Sennaの構成で、全文検索のテストをしているのだが
ある文書パターンで特定のワードで著しく応答速度が落ちる場合がある。

例えば下記のようなテーブル構成なのだが

mysql> desc test;
+-------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | 0 | |
| text | varchar(2000) | YES | MUL | NULL | |
+-------+---------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

mysql> show senna status\G
*************************** 1. row ***************************
Table: test
Key_name: text
Column_name: text
Encoding: euc_jp
Index_type: NGRAM
Normalize: ON
Split_alpha: OFF
Split_digit: OFF
Split_symbol: OFF
Initial_n_segments: 512
Senna_keys_size: 4624378
Senna_keys_file_size: 113319936
Senna_lexicon_size: 2503513
Senna_lexicon_file_size: 67182592
Senna_inv_seg_size: 181833728
Senna_inv_chunk_size: 485888000
1 row in set (0.00 sec)

大抵のクエリは全く問題ないのだが
mysql> select count(*) from test where match(text) against('テスト');
+----------+
| count(*) |
+----------+
| 2884 |
+----------+
1 row in set (0.04 sec)

特定のワードで応答が極端に悪い。(マッチ数が多いのもあるのかもしれないが)
mysql> select count(*) from test where match(text) against('ファッション');
+----------+
| count(*) |
+----------+
| 1145051 |
+----------+
1 row in set (1 min 18.00 sec)

mysql> select text from test where match(text) against('ファッション') limit 3;
+---------------------------------------------------------------+
| text |
+---------------------------------------------------------------+
| f46zy46156 TAKEO KIKUCHI/レジメンタイ(パープル) ファッション |
| f46zy46157 TAKEOKIKUCHI/レザーバングル(ホワイト) ファッション |
| f46zy46158 TAKEOKIKUCHI/レザーバングル(ブラック) ファッション |
+---------------------------------------------------------------+
3 rows in set (1 min 17.36 sec)

調べてみると、カラムの末尾にある単語だった。
Senna側の問題なのか、文書の問題なのか・・
何か関連はあるのかなぁ・・
プロフィール
  • プロフィール画像
  • アイコン画像 ニックネーム:utadaz
  • アイコン画像 性別:男性
  • アイコン画像 現住所:東京都
  • アイコン画像 趣味:
    ・インターネット
    ・音楽
    ・自転車
読者になる
渋谷のIT企業に勤める、Neetエンジニ屋
2010年02月
« 前の月  |  次の月 »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28
メールフォーム

TITLE


MESSAGE

最新コメント
アイコン画像あああ
» test (2010年06月09日)
アイコン画像aa
» MySQL innodb plugin on ssd server (2010年06月09日)
アイコン画像六兵衛
» MySQL innodb plugin on ssd server (2010年06月04日)
カテゴリアーカイブ
http://yaplog.jp/utadaz/index1_0.rdf
P R