From sh.kawamura @ gmail.com Tue Jul 3 14:17:49 2007 From: sh.kawamura @ gmail.com (Shingo Kawamura) Date: Tue, 3 Jul 2007 14:17:49 +0900 Subject: [Ludia-users 57] =?iso-2022-jp?b?Q3JlYXRlSW5kZXgbJEIkRyUoJWkhPBsoQg==?= Message-ID: <004801c7bd31$8153abe0$3600a8c0@public.local> お世話になっております。河村です。 LudiaをWindowsで動かすテストを行っている際に、 Create Indexなどで、 インデックスの総容量が2GBを越えた辺りでエラーとなってしまうのですが、 何か考えられる理由はあるでしょうか? OS:WindowsXP Professinal(32bit) PostgreSQL:8.2.4 Senna:1.0.7 Ludia:1.1.0 --postgresql.conf custom_variable_classes = 'ludia' ludia.max_n_sort_result = 1000000 ludia.enable_seqscan = off ludia.sen_index_flags = 16 ludia.max_n_index_cache = 16 以上、宜しくお願い致します。 From iwasakims @ nttdata.co.jp Tue Jul 3 16:03:07 2007 From: iwasakims @ nttdata.co.jp (iwasakims @ nttdata.co.jp) Date: Tue, 3 Jul 2007 16:03:07 +0900 Subject: [Ludia-users 58] Re: =?iso-2022-jp?b?Q3JlYXRlSW5kZXgbJEIkRyUoJWkhPBsoQg==?= In-Reply-To: <004801c7bd31$8153abe0$3600a8c0@public.local> References: <004801c7bd31$8153abe0$3600a8c0@public.local> Message-ID: 岩崎です。 > LudiaをWindowsで動かすテストを行っている際に、 > Create Indexなどで、 > インデックスの総容量が2GBを越えた辺りでエラーとなってしまうのですが、 Sennaをコンパイルする際に WIN32_FMO_EACH をdefineすると解消しないでしょうか? From sh.kawamura @ gmail.com Tue Jul 3 16:55:18 2007 From: sh.kawamura @ gmail.com (Shingo Kawamura) Date: Tue, 3 Jul 2007 16:55:18 +0900 Subject: [Ludia-users 59] Re: =?iso-2022-jp?b?Q3JlYXRlSW5kZXgbJEIkRyUoJWkhPBsoQg==?= References: <004801c7bd31$8153abe0$3600a8c0@public.local> Message-ID: <005901c7bd47$80f97bf0$3600a8c0@public.local> 岩崎様 河村です。お世話になっております。 お返事ありがとうございます。 すみません。前提条件が抜けていました。 SennaはWIN32_FMO_EACH をdefineしてコンパイルしています。 以前の128MB固定版のSennaですと、 恐らく128MB * 16 =2GBで落ちるのも納得出来ると思うのですが、 512MB * 4(本来1GBですが、半分にしてビルドしています) でも落ちてしまい原因がわからない状態です。 senna+ludiaで動作させた場合に、インデックスは全て仮想アドレス空間 展開されるのでしょうか? 32bit版Windowsだと一プロセスの仮想アドレス空間の上限値が2GBまでと思いますので その制限でエラーになっているということは考えられないでしょうか? ----- Original Message ----- From: To: Sent: Tuesday, July 03, 2007 4:03 PM Subject: [Ludia-users 58] Re:CreateIndexでエラー > 岩崎です。 > > >> LudiaをWindowsで動かすテストを行っている際に、 >> Create Indexなどで、 >> インデックスの総容量が2GBを越えた辺りでエラーとなってしまうのですが、 > > Sennaをコンパイルする際に > WIN32_FMO_EACH をdefineすると解消しないでしょうか? > > _______________________________________________ > Ludia-users mailing list > Ludia-users @ lists.sourceforge.jp > http://lists.sourceforge.jp/mailman/listinfo/ludia-users From morita @ razil.jp Tue Jul 3 19:52:17 2007 From: morita @ razil.jp (morita @ razil.jp) Date: Tue, 3 Jul 2007 19:52:17 +0900 Subject: [Ludia-users 60] Re: =?iso-2022-jp?b?Q3JlYXRlSW5kZXgbJEIkRyUoJWkhPBsoQg==?= In-Reply-To: <20070703104049.GA11899@epepe.com> References: <004801c7bd31$8153abe0$3600a8c0@public.local> <005901c7bd47$80f97bf0$3600a8c0@public.local> <20070703104049.GA11899@epepe.com> Message-ID: <20070703105217.GA12303@epepe.com> 森と申します。 > senna+ludiaで動作させた場合に、インデックスは全て仮想アドレス空間 > 展開されるのでしょうか? > 32bit版Windowsだと一プロセスの仮想アドレス空間の上限値が2GBまでと思いますので > > その制限でエラーになっているということは考えられないでしょうか? sennaのインデックスは、バッファ部分と転置インデックス部分に分かれていて、 前者はメモリにマップしっぱなし、後者は必要な時のみマップするようにしています。 WIN32_FMO_EACHの設定によらず、その辺の挙動は変わらない(はず‥)です。 もしかするとバッファ部分だけで2GBに達し、論理空間が枯渇しているのかも知れません。 よろしければ、各ファイルのサイズが分かる形でインデックスファイルの一覧を いただけないでしょうか? 落ちる前の状態のプロセスのメモリ使用状況が取得できると更に嬉しいです。。 よろしくお願いします。 > ----- Original Message ----- > From: > To: > Sent: Tuesday, July 03, 2007 4:03 PM > Subject: [Ludia-users 58] Re:CreateIndexでエラー > > > > 岩崎です。 > > > > > >> LudiaをWindowsで動かすテストを行っている際に、 > >> Create Indexなどで、 > >> インデックスの総容量が2GBを越えた辺りでエラーとなってしまうのですが、 > > > > Sennaをコンパイルする際に > > WIN32_FMO_EACH をdefineすると解消しないでしょうか? > > > > _______________________________________________ > > Ludia-users mailing list > > Ludia-users @ lists.sourceforge.jp > > http://lists.sourceforge.jp/mailman/listinfo/ludia-users > > _______________________________________________ > Ludia-users mailing list > Ludia-users @ lists.sourceforge.jp > http://lists.sourceforge.jp/mailman/listinfo/ludia-users > -- mori From sh.kawamura @ gmail.com Wed Jul 4 09:37:09 2007 From: sh.kawamura @ gmail.com (Shingo Kawamura) Date: Wed, 4 Jul 2007 09:37:09 +0900 Subject: [Ludia-users 61] Re: =?iso-2022-jp?b?Q3JlYXRlSW5kZXgbJEIkRyUoJWkhPBsoQg==?= References: <004801c7bd31$8153abe0$3600a8c0@public.local><005901c7bd47$80f97bf0$3600a8c0@public.local><20070703104049.GA11899@epepe.com> <20070703105217.GA12303@epepe.com> Message-ID: <000601c7bdd3$7626c570$3600a8c0@public.local> 森様 河村です。お世話になっております。 お返事ありがとうございます。 > よろしければ、各ファイルのサイズが分かる形でインデックスファイルの一覧を > いただけないでしょうか? 作成されたファイルは以下のファイルとなります。 #Windows上での容量です。 --- 176446.SEN 12,416KB 176446.SEN.i 83,136KB 176446.SEN.i.c 523,968KB 176446.SEN.i.c.001 523,776KB 176446.SEN.i.c.002 522,496KB 176446.SEN.i.c.003 519,168KB 176446.SEN.l 8,320KB --- エラーが発生した際に以下のログが出力されています。 --senna.log 07/02:00:28:47.528|A| io_win_map(8191, 180227160) failed!! -- > 落ちる前の状態のプロセスのメモリ使用状況が取得できると更に嬉しいです。。 すみません。夜間に流していましたので、この辺りのデータは取っていませんでした…。 時間を見つけてもう一度流してみたいと思います。 ----- Original Message ----- From: To: Sent: Tuesday, July 03, 2007 7:52 PM Subject: [Ludia-users 60] Re:CreateIndexでエラー > > 森と申します。 > >> senna+ludiaで動作させた場合に、インデックスは全て仮想アドレス空間 >> 展開されるのでしょうか? >> 32bit版Windowsだと一プロセスの仮想アドレス空間の上限値が2GBまでと思いますので >> >> その制限でエラーになっているということは考えられないでしょうか? > > sennaのインデックスは、バッファ部分と転置インデックス部分に分かれていて、 > 前者はメモリにマップしっぱなし、後者は必要な時のみマップするようにしています。 > > > WIN32_FMO_EACHの設定によらず、その辺の挙動は変わらない(はず‥)です。 > > もしかするとバッファ部分だけで2GBに達し、論理空間が枯渇しているのかも知れません。 > > よろしければ、各ファイルのサイズが分かる形でインデックスファイルの一覧を > いただけないでしょうか? > > 落ちる前の状態のプロセスのメモリ使用状況が取得できると更に嬉しいです。。 > > よろしくお願いします。 > >> ----- Original Message ----- >> From: >> To: >> Sent: Tuesday, July 03, 2007 4:03 PM >> Subject: [Ludia-users 58] Re:CreateIndexでエラー >> >> >> > 岩崎です。 >> > >> > >> >> LudiaをWindowsで動かすテストを行っている際に、 >> >> Create Indexなどで、 >> >> インデックスの総容量が2GBを越えた辺りでエラーとなってしまうのですが、 >> > >> > Sennaをコンパイルする際に >> > WIN32_FMO_EACH をdefineすると解消しないでしょうか? >> > >> > _______________________________________________ >> > Ludia-users mailing list >> > Ludia-users @ lists.sourceforge.jp >> > http://lists.sourceforge.jp/mailman/listinfo/ludia-users >> >> _______________________________________________ >> Ludia-users mailing list >> Ludia-users @ lists.sourceforge.jp >> http://lists.sourceforge.jp/mailman/listinfo/ludia-users >> > -- > mori > > _______________________________________________ > Ludia-users mailing list > Ludia-users @ lists.sourceforge.jp > http://lists.sourceforge.jp/mailman/listinfo/ludia-users From morita @ razil.jp Wed Jul 4 14:10:29 2007 From: morita @ razil.jp (morita @ razil.jp) Date: Wed, 4 Jul 2007 14:10:29 +0900 Subject: [Ludia-users 62] Re: =?iso-2022-jp?b?Q3JlYXRlSW5kZXgbJEIkRyUoJWkhPBsoQg==?= In-Reply-To: <000601c7bdd3$7626c570$3600a8c0@public.local> References: <20070703105217.GA12303@epepe.com> <000601c7bdd3$7626c570$3600a8c0@public.local> Message-ID: <20070704051029.GA2575@epepe.com> 森です。 ひょっとすると論理空間の枯渇による問題ではないかも知れません。 > エラーが発生した際に以下のログが出力されています。 > --senna.log > 07/02:00:28:47.528|A| io_win_map(8191, 180227160) failed!! 特定の単語グループに該当する転置インデックスのサイズが180MBに達している ように見えます。 INITIAL_N_SEGMENTSの値がいくつになっているか教えて下さい。 また、文書の特性として特定の単語が非常に高頻度に現れたりするようなことが あったりするでしょうか? -- mori From sh.kawamura @ gmail.com Wed Jul 4 16:18:33 2007 From: sh.kawamura @ gmail.com (Shingo Kawamura) Date: Wed, 4 Jul 2007 16:18:33 +0900 Subject: [Ludia-users 63] Re: =?iso-2022-jp?b?Q3JlYXRlSW5kZXgbJEIkRyUoJWkhPBsoQg==?= References: <20070703105217.GA12303@epepe.com><000601c7bdd3$7626c570$3600a8c0@public.local> <20070704051029.GA2575@epepe.com> Message-ID: <003101c7be0b$890851d0$3600a8c0@public.local> 河村です。お世話になっております。 > INITIAL_N_SEGMENTSの値がいくつになっているか教えて下さい。 デフォルト値から特に設定を変えていませんので、512になっていると思います。 > また、文書の特性として特定の単語が非常に高頻度に現れたりするようなことが > あったりするでしょうか? はい。 一レコードに同じ「預金」という単語が10個以上あるような30KBなCSVデータを #他に「部門」とかの単語も同数ありますが とりあえずテストとして100万レコード挿入している感じです。 とりあえず、今日の夜間バッチで INITIAL_N_SEGMENTSの数値を多めにして実行してみようかと思っています。 ----- Original Message ----- From: To: Sent: Wednesday, July 04, 2007 2:10 PM Subject: [Ludia-users 62] Re:CreateIndexでエラー > > 森です。 > > ひょっとすると論理空間の枯渇による問題ではないかも知れません。 > >> エラーが発生した際に以下のログが出力されています。 >> --senna.log >> 07/02:00:28:47.528|A| io_win_map(8191, 180227160) failed!! > > 特定の単語グループに該当する転置インデックスのサイズが180MBに達している > ように見えます。 > > INITIAL_N_SEGMENTSの値がいくつになっているか教えて下さい。 > > また、文書の特性として特定の単語が非常に高頻度に現れたりするようなことが > あったりするでしょうか? > > -- > mori > > _______________________________________________ > Ludia-users mailing list > Ludia-users @ lists.sourceforge.jp > http://lists.sourceforge.jp/mailman/listinfo/ludia-users From morita @ razil.jp Wed Jul 4 16:39:37 2007 From: morita @ razil.jp (morita @ razil.jp) Date: Wed, 4 Jul 2007 16:39:37 +0900 Subject: [Ludia-users 64] Re: =?iso-2022-jp?b?Q3JlYXRlSW5kZXgbJEIkRyUoJWkhPBsoQg==?= In-Reply-To: <003101c7be0b$890851d0$3600a8c0@public.local> References: <20070704051029.GA2575@epepe.com> <003101c7be0b$890851d0$3600a8c0@public.local> Message-ID: <20070704073937.GA5563@epepe.com> 森です。 > 一レコードに同じ「預金」という単語が10個以上あるような30KBなCSVデータを > #他に「部門」とかの単語も同数ありますが > とりあえずテストとして100万レコード挿入している感じです。 同じ内容のレコードが100万件ということでしょうか? つまり、「預金」「部門」については、10個×100万件で 1000万回程度インデックス対象に含まれる感じでしょうか? もしそうでしたらINITIAL_N_SEGMENTSの数を変えてもちょっと厳しいかも知れないです。 現状ではSEN_IO_FILE_SIZEを512MBにされているということでしたが、 これを大きくするとひょっとすると効果があるかも知れません。 ストップワード機能みたいなのをつけた方がいいんでしょうかねぇ。。 > とりあえず、今日の夜間バッチで > INITIAL_N_SEGMENTSの数値を多めにして実行してみようかと思っています。 > > > > ----- Original Message ----- > From: > To: > Sent: Wednesday, July 04, 2007 2:10 PM > Subject: [Ludia-users 62] Re:CreateIndexでエラー > > > > > > 森です。 > > > > ひょっとすると論理空間の枯渇による問題ではないかも知れません。 > > > >> エラーが発生した際に以下のログが出力されています。 > >> --senna.log > >> 07/02:00:28:47.528|A| io_win_map(8191, 180227160) failed!! > > > > 特定の単語グループに該当する転置インデックスのサイズが180MBに達している > > ように見えます。 > > > > INITIAL_N_SEGMENTSの値がいくつになっているか教えて下さい。 > > > > また、文書の特性として特定の単語が非常に高頻度に現れたりするようなことが > > あったりするでしょうか? > > > > -- > > mori > > > > _______________________________________________ > > Ludia-users mailing list > > Ludia-users @ lists.sourceforge.jp > > http://lists.sourceforge.jp/mailman/listinfo/ludia-users > > _______________________________________________ > Ludia-users mailing list > Ludia-users @ lists.sourceforge.jp > http://lists.sourceforge.jp/mailman/listinfo/ludia-users > -- mori From sh.kawamura @ gmail.com Wed Jul 4 18:40:35 2007 From: sh.kawamura @ gmail.com (Shingo Kawamura) Date: Wed, 4 Jul 2007 18:40:35 +0900 Subject: [Ludia-users 65] Re: =?iso-2022-jp?b?Q3JlYXRlSW5kZXgbJEIkRyUoJWkhPBsoQg==?= References: <20070704051029.GA2575@epepe.com><003101c7be0b$890851d0$3600a8c0@public.local> <20070704073937.GA5563@epepe.com> Message-ID: <003e01c7be1f$60780350$3600a8c0@public.local> 河村です。 > 同じ内容のレコードが100万件ということでしょうか? > > つまり、「預金」「部門」については、10個×100万件で > 1000万回程度インデックス対象に含まれる感じでしょうか? はい。その通りです。 #実際には39万件しか入りませんでしたので、390万回ですが > 現状ではSEN_IO_FILE_SIZEを512MBにされているということでしたが、 > これを大きくするとひょっとすると効果があるかも知れません。 始めはデフォルトの1GBで使用していたのですが、 MapViewOfFileでERROR_NOT_ENOUGH_MEMORY(8) が発生してしまったので、512MBにしていました。 ひとまず今考えているのが、 ・/3GBスイッチを入れて実行してみる(論理空間が関係なければ無駄になりそうですね) ・SEN_IO_FILE_SIZEを1GBにしたモジュールで実行してみる ・INITIAL_N_SEGMENTSの値を増やして実行してみる ・MAX_N_INDEX_CACHEの値を増やしてみる くらいですが、お話を伺う限り2つめ以外はあまり意味ないかもしれませんね… ----- Original Message ----- From: To: Sent: Wednesday, July 04, 2007 4:39 PM Subject: [Ludia-users 64] Re:CreateIndexでエラー > 森です。 > >> 一レコードに同じ「預金」という単語が10個以上あるような30KBなCSVデータを >> #他に「部門」とかの単語も同数ありますが >> とりあえずテストとして100万レコード挿入している感じです。 > > 同じ内容のレコードが100万件ということでしょうか? > > つまり、「預金」「部門」については、10個×100万件で > 1000万回程度インデックス対象に含まれる感じでしょうか? > > もしそうでしたらINITIAL_N_SEGMENTSの数を変えてもちょっと厳しいかも知れないです。 > > 現状ではSEN_IO_FILE_SIZEを512MBにされているということでしたが、 > これを大きくするとひょっとすると効果があるかも知れません。 > > ストップワード機能みたいなのをつけた方がいいんでしょうかねぇ。。 > >> とりあえず、今日の夜間バッチで >> INITIAL_N_SEGMENTSの数値を多めにして実行してみようかと思っています。 >> >> >> >> ----- Original Message ----- >> From: >> To: >> Sent: Wednesday, July 04, 2007 2:10 PM >> Subject: [Ludia-users 62] Re:CreateIndexでエラー >> >> >> > >> > 森です。 >> > >> > ひょっとすると論理空間の枯渇による問題ではないかも知れません。 >> > >> >> エラーが発生した際に以下のログが出力されています。 >> >> --senna.log >> >> 07/02:00:28:47.528|A| io_win_map(8191, 180227160) failed!! >> > >> > 特定の単語グループに該当する転置インデックスのサイズが180MBに達している >> > ように見えます。 >> > >> > INITIAL_N_SEGMENTSの値がいくつになっているか教えて下さい。 >> > >> > また、文書の特性として特定の単語が非常に高頻度に現れたりするようなことが >> > >> > あったりするでしょうか? >> > >> > -- >> > mori >> > >> > _______________________________________________ >> > Ludia-users mailing list >> > Ludia-users @ lists.sourceforge.jp >> > http://lists.sourceforge.jp/mailman/listinfo/ludia-users >> >> _______________________________________________ >> Ludia-users mailing list >> Ludia-users @ lists.sourceforge.jp >> http://lists.sourceforge.jp/mailman/listinfo/ludia-users >> > -- > mori > > _______________________________________________ > Ludia-users mailing list > Ludia-users @ lists.sourceforge.jp > http://lists.sourceforge.jp/mailman/listinfo/ludia-users From morita @ razil.jp Thu Jul 5 15:20:40 2007 From: morita @ razil.jp (morita @ razil.jp) Date: Thu, 5 Jul 2007 15:20:40 +0900 Subject: [Ludia-users 66] Re: =?iso-2022-jp?b?Q3JlYXRlSW5kZXgbJEIkRyUoJWkhPBsoQg==?= In-Reply-To: <003e01c7be1f$60780350$3600a8c0@public.local> References: <20070704073937.GA5563@epepe.com> <003e01c7be1f$60780350$3600a8c0@public.local> Message-ID: <20070705062040.GA25163@epepe.com> 森です。 >>> Shingo Kawamura さんは書きました: > 河村です。 > > > 同じ内容のレコードが100万件ということでしょうか? > > > > つまり、「預金」「部門」については、10個×100万件で > > 1000万回程度インデックス対象に含まれる感じでしょうか? > > はい。その通りです。 > #実際には39万件しか入りませんでしたので、390万回ですが すみません‥この程度の頻度ならlinux等では実績があるようにも思えますので、 これが原因とも限らないかも知れません。 > > 現状ではSEN_IO_FILE_SIZEを512MBにされているということでしたが、 > > これを大きくするとひょっとすると効果があるかも知れません。 > > 始めはデフォルトの1GBで使用していたのですが、 > MapViewOfFileでERROR_NOT_ENOUGH_MEMORY(8) > が発生してしまったので、512MBにしていました。 このエラーが出た時にsenna.logに何か他に情報が出力されてはいないでしょうか? ファイルサイズによってメモリが枯渇したりしなかったりする理由が いまひとつよく掴めていません。 > ひとまず今考えているのが、 > > ・/3GBスイッチを入れて実行してみる(論理空間が関係なければ無駄になりそうですね) > > ・SEN_IO_FILE_SIZEを1GBにしたモジュールで実行してみる > ・INITIAL_N_SEGMENTSの値を増やして実行してみる > ・MAX_N_INDEX_CACHEの値を増やしてみる > > くらいですが、お話を伺う限り2つめ以外はあまり意味ないかもしれませんね… ひょっとすると1つめが影響する可能性があるかも知れませんね。 -- mori From sh.kawamura @ gmail.com Fri Jul 6 08:59:55 2007 From: sh.kawamura @ gmail.com (Shingo Kawamura) Date: Fri, 6 Jul 2007 08:59:55 +0900 Subject: [Ludia-users 67] Re: =?iso-2022-jp?b?Q3JlYXRlSW5kZXgbJEIkRyUoJWkhPBsoQg==?= References: <20070704073937.GA5563@epepe.com><003e01c7be1f$60780350$3600a8c0@public.local> <20070705062040.GA25163@epepe.com> Message-ID: <000c01c7bf60$976d8050$3600a8c0@public.local> 河村です。お世話になっております。 3パターン程実行してみました。 >> ・/3GBスイッチを入れて実行してみる(論理空間が関係なければ無駄になりそうですね) 転置ファイルが3GB分作成されました。 --- 194262.SEN 16,512KB 194262.SEN.i 83,648KB 194262.SEN.i.c 524,096KB 194262.SEN.i.c.001 524,288KB 194262.SEN.i.c.002 524,288KB 194262.SEN.i.c.003 523,776KB 194262.SEN.i.c.004 519,936KB 194262.SEN.i.c.005 280,320KB 194262.SEN.i.c.006 278,784KB 194262.SEN.l 8,320KB --- 最終的には 07/06:08:40:22.337|A| MapViewOfFile failed #8 07/06:08:40:22.437|A| io_win_map(8183, 287121676) failed!! というエラーで落ちたようです。 やはり、論理アドレス空間でしょうか… >> ・INITIAL_N_SEGMENTSの値を増やして実行してみる ludia.initial_n_segments = 8192をpostgresql.confに設定しましたが 特に影響がありませんでした。 >> ・MAX_N_INDEX_CACHEの値を増やしてみる ludia.max_n_index_cache = 32をpostgresql.confに設定しましたが、 特に影響がありませんでした。 >> 始めはデフォルトの1GBで使用していたのですが、 >> MapViewOfFileでERROR_NOT_ENOUGH_MEMORY(8) >> が発生してしまったので、512MBにしていました。 > このエラーが出た時にsenna.logに何か他に情報が出力されてはいないでしょうか? > > ファイルサイズによってメモリが枯渇したりしなかったりする理由が > いまひとつよく掴めていません。 MapViewOfFile failed #8 というエラーが出ていたかと思います。 MSのサイトに http://support.microsoft.com/kb/830783/ja のような情報が上がっていたので、なんとなく下げてみただけで、 特に理由はありません。 ----- Original Message ----- From: To: Sent: Thursday, July 05, 2007 3:20 PM Subject: [Ludia-users 66] Re:CreateIndexでエラー > 森です。 > >>>> Shingo Kawamura さんは書きました: >> 河村です。 >> >> > 同じ内容のレコードが100万件ということでしょうか? >> > >> > つまり、「預金」「部門」については、10個×100万件で >> > 1000万回程度インデックス対象に含まれる感じでしょうか? >> >> はい。その通りです。 >> #実際には39万件しか入りませんでしたので、390万回ですが > > すみません‥この程度の頻度ならlinux等では実績があるようにも思えますので、 > これが原因とも限らないかも知れません。 > >> > 現状ではSEN_IO_FILE_SIZEを512MBにされているということでしたが、 >> > これを大きくするとひょっとすると効果があるかも知れません。 >> >> 始めはデフォルトの1GBで使用していたのですが、 >> MapViewOfFileでERROR_NOT_ENOUGH_MEMORY(8) >> が発生してしまったので、512MBにしていました。 > > このエラーが出た時にsenna.logに何か他に情報が出力されてはいないでしょうか? > > ファイルサイズによってメモリが枯渇したりしなかったりする理由が > いまひとつよく掴めていません。 > >> ひとまず今考えているのが、 >> >> ・/3GBスイッチを入れて実行してみる(論理空間が関係なければ無駄になりそうですね) >> >> ・SEN_IO_FILE_SIZEを1GBにしたモジュールで実行してみる >> ・INITIAL_N_SEGMENTSの値を増やして実行してみる >> ・MAX_N_INDEX_CACHEの値を増やしてみる >> >> くらいですが、お話を伺う限り2つめ以外はあまり意味ないかもしれませんね… > > ひょっとすると1つめが影響する可能性があるかも知れませんね。 > > -- > mori > > _______________________________________________ > Ludia-users mailing list > Ludia-users @ lists.sourceforge.jp > http://lists.sourceforge.jp/mailman/listinfo/ludia-users From morita @ razil.jp Mon Jul 9 16:51:54 2007 From: morita @ razil.jp (morita @ razil.jp) Date: Mon, 9 Jul 2007 16:51:54 +0900 Subject: [Ludia-users 68] Re: =?iso-2022-jp?b?Q3JlYXRlSW5kZXgbJEIkRyUoJWkhPBsoQg==?= In-Reply-To: <000c01c7bf60$976d8050$3600a8c0@public.local> References: <20070705062040.GA25163@epepe.com> <000c01c7bf60$976d8050$3600a8c0@public.local> Message-ID: <20070709075154.GA6339@epepe.com> 森です。 >>> Shingo Kawamura さんは書きました: > 河村です。お世話になっております。 > > 3パターン程実行してみました。 お手数おかけします。 > >> ・/3GBスイッチを入れて実行してみる(論理空間が関係なければ無駄になりそうですね) > 転置ファイルが3GB分作成されました。 > --- > 194262.SEN 16,512KB > 194262.SEN.i 83,648KB > 194262.SEN.i.c 524,096KB > 194262.SEN.i.c.001 524,288KB > 194262.SEN.i.c.002 524,288KB > 194262.SEN.i.c.003 523,776KB > 194262.SEN.i.c.004 519,936KB > 194262.SEN.i.c.005 280,320KB > 194262.SEN.i.c.006 278,784KB > 194262.SEN.l 8,320KB > --- > 最終的には > 07/06:08:40:22.337|A| MapViewOfFile failed #8 > 07/06:08:40:22.437|A| io_win_map(8183, 287121676) failed!! > というエラーで落ちたようです。 > > やはり、論理アドレス空間でしょうか… そのようですね。 mapしたメモリが意図したように解放されていないようです。 もし再度動かす機会がありましたら、 以下のようにlib/io.cにパッチを当てて試してみて頂けると、 切り分けのヒントになります。 UnmapViewOfFileして、CloseHandleすれば、 論理アドレス空間が再利用可能になると考えていたのですが、 根本的に勘違いしているのかも知れません。。 Index: lib/io.c =================================================================== --- lib/io.c (リビジョン 484) +++ lib/io.c (作業コピー) @@ -811,7 +811,7 @@ if (res) { mmap_size += length; } else { - SEN_LOG(sen_log_alert, "MapViewOfFile failed #%d", GetLastError()); + SEN_LOG(sen_log_alert, "MapViewOfFile failed #%d <%d>", GetLastError(), mmap_size); } /* MUTEX_UNLOCK(fi->mutex); */ return res; @@ -918,7 +918,7 @@ if (res) { mmap_size += length; } else { - SEN_LOG(sen_log_alert, "MapViewOfFile failed #%d", GetLastError()); + SEN_LOG(sen_log_alert, "MapViewOfFile failed #%d <%d>", GetLastError(), mmap_size); } return res; } From sh.kawamura @ gmail.com Wed Jul 11 09:03:22 2007 From: sh.kawamura @ gmail.com (Shingo Kawamura) Date: Wed, 11 Jul 2007 09:03:22 +0900 Subject: [Ludia-users 69] Re: =?iso-2022-jp?b?Q3JlYXRlSW5kZXgbJEIkRyUoJWkhPBsoQg==?= References: <20070705062040.GA25163@epepe.com><000c01c7bf60$976d8050$3600a8c0@public.local> <20070709075154.GA6339@epepe.com> Message-ID: <000e01c7c34e$e70924b0$3600a8c0@public.local> 河村です。 > そのようですね。 > > mapしたメモリが意図したように解放されていないようです。 > > もし再度動かす機会がありましたら、 > 以下のようにlib/io.cにパッチを当てて試してみて頂けると、 > 切り分けのヒントになります。 > > UnmapViewOfFileして、CloseHandleすれば、 > 論理アドレス空間が再利用可能になると考えていたのですが、 > 根本的に勘違いしているのかも知れません。。 パッチを当てて再度実行してみました。 --- 07/11:06:49:10.021|A| MapViewOfFile failed #8 <400293888> 07/11:06:49:10.071|A| io_win_map(8183, 287121676) failed!! --- ----- Original Message ----- From: To: Sent: Monday, July 09, 2007 4:51 PM Subject: [Ludia-users 68] Re:CreateIndexでエラー > 森です。 > >>>> Shingo Kawamura さんは書きました: >> 河村です。お世話になっております。 >> >> 3パターン程実行してみました。 > > お手数おかけします。 > >> >> ・/3GBスイッチを入れて実行してみる(論理空間が関係なければ無駄になりそうですね) >> 転置ファイルが3GB分作成されました。 >> --- >> 194262.SEN 16,512KB >> 194262.SEN.i 83,648KB >> 194262.SEN.i.c 524,096KB >> 194262.SEN.i.c.001 524,288KB >> 194262.SEN.i.c.002 524,288KB >> 194262.SEN.i.c.003 523,776KB >> 194262.SEN.i.c.004 519,936KB >> 194262.SEN.i.c.005 280,320KB >> 194262.SEN.i.c.006 278,784KB >> 194262.SEN.l 8,320KB >> --- >> 最終的には >> 07/06:08:40:22.337|A| MapViewOfFile failed #8 >> 07/06:08:40:22.437|A| io_win_map(8183, 287121676) failed!! >> というエラーで落ちたようです。 >> >> やはり、論理アドレス空間でしょうか… > > そのようですね。 > > mapしたメモリが意図したように解放されていないようです。 > > もし再度動かす機会がありましたら、 > 以下のようにlib/io.cにパッチを当てて試してみて頂けると、 > 切り分けのヒントになります。 > > UnmapViewOfFileして、CloseHandleすれば、 > 論理アドレス空間が再利用可能になると考えていたのですが、 > 根本的に勘違いしているのかも知れません。。 > > > Index: lib/io.c > =================================================================== > --- lib/io.c (リビジョン 484) > +++ lib/io.c (作業コピー) > @@ -811,7 +811,7 @@ > if (res) { > mmap_size += length; > } else { > - SEN_LOG(sen_log_alert, "MapViewOfFile failed #%d", GetLastError()); > + SEN_LOG(sen_log_alert, "MapViewOfFile failed #%d <%d>", > GetLastError(), mmap_size); > } > /* MUTEX_UNLOCK(fi->mutex); */ > return res; > @@ -918,7 +918,7 @@ > if (res) { > mmap_size += length; > } else { > - SEN_LOG(sen_log_alert, "MapViewOfFile failed #%d", GetLastError()); > + SEN_LOG(sen_log_alert, "MapViewOfFile failed #%d <%d>", > GetLastError(), mmap_size); > } > return res; > } > > _______________________________________________ > Ludia-users mailing list > Ludia-users @ lists.sourceforge.jp > http://lists.sourceforge.jp/mailman/listinfo/ludia-users From morita @ razil.jp Thu Jul 12 14:11:21 2007 From: morita @ razil.jp (morita @ razil.jp) Date: Thu, 12 Jul 2007 14:11:21 +0900 Subject: [Ludia-users 70] Re: =?iso-2022-jp?b?Q3JlYXRlSW5kZXgbJEIkRyUoJWkhPBsoQg==?= In-Reply-To: <000e01c7c34e$e70924b0$3600a8c0@public.local> References: <20070709075154.GA6339@epepe.com> <000e01c7c34e$e70924b0$3600a8c0@public.local> Message-ID: <20070712051120.GA24630@epepe.com> 森です。お世話になっています。。 > パッチを当てて再度実行してみました。 > --- > 07/11:06:49:10.021|A| MapViewOfFile failed #8 <400293888> > 07/11:06:49:10.071|A| io_win_map(8183, 287121676) failed!! ありがとうございます。 ひょっとするとSennaロジックのレベルでちゃんとメモリを解放していないのではないかと 考えたのですが、お蔭様でその疑いは晴れました。 どうやらUnmapViewOfFile, CloseHandleという手順を踏んでも 意図したように論理空間が解放できていないように見受けられます。 一点、気にかかっているのは、WIN32_FMO_EACHの場合は、 CreateFileMappingでoffset + length分のmappingを作成している点です。 mmapと違ってファイルの途中から一部分だけmappingすることができないので、 このような手段を取っているのですが、そうすると論理空間を、 length分ではなく、offset + length分消費してしまうのかも知れません。 また、WIN32_FMO_EACHでない場合は、UnmapViewOfFileの際にCloseHandleを発行していないので、 これも問題かも知れません 以上、すぐには着手できないのですが、私達の方でも検証してみたいと思います。 -- mori