1 名前:名無しさん@お腹いっぱい。 [2009/08/02(日) 15:10:20 ] FreeBSD 関連の質問はここで。 事前にハンドブック閲覧や過去ログ検索等の自助努力をすることが望ましい。 再現性情報(ハードウェア・ソフトウェア・エラーメッセージ)の記載は必須。 sysutils/sysinfoなんていれておくといいかもよ。 The FreeBSD Project www.freebsd.org/ja/ FreeBSD ハンドブック www.freebsd.org/doc/ja/books/handbook/ 過去ログ www9.atwiki.jp/freebsd/ 前スレ 初心者もOK! FreeBSD質問スレッド その102 pc12.2ch.net/test/read.cgi/unix/1243461056/
206 名前:名無しさん@お腹いっぱい。 [2009/08/12(水) 11:03:13 ] ディレクトリにファイルが2000程ある状態でオプション無しのlsを実行すると すぐに結果が返ってきますが、lオプションを付けると数秒待たされてしまいます。 これを設定で改善することは出来るのでしょうか? %uname -mrs FreeBSD 7.0-STABLE amd64 %ls|wc 2356 2356 18951 %time ls>/dev/null 0.003u 0.000s 0:00.00 0.0% 0+0k 0+0io 0pf+0w %time ls -l>/dev/null 1.550u 6.201s 0:07.76 99.8% 32+1506k 0+0io 0pf+0w
207 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/12(水) 11:07:59 ] >>206 環境変数 TZ=JST-9 をセットしておけば少しだけ速くなる。
208 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/12(水) 11:08:11 ] それはソートしてるからだろ。
209 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/12(水) 11:09:40 ] >>208 すみませんが詳しい方のみ回答をお願いします。 ls でも ls -l でもソートはします。 >>207 さんの言う通り、ls -l では statが実行される分遅くなるのです。
210 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/12(水) 11:16:38 ] すみませんが詳しい方のみls -lをお使いください。
211 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/12(水) 11:19:12 ] たった2000個そこらでCPU time数秒もかかるって、どんだけ貧弱なマシンだ? inboxに7000個ほどあるけど、0.1秒もかからんぜ。
212 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/12(水) 11:28:11 ] >>207 TZ=JST-9で早くなるメカニズムが意味不明。 >>209 さらにTZ=JST-9とstatの関係も不明 うちのは特にチューニングしていないが、>>206 と比べると桁違いに速い。 amd64なマシンでそれだけ遅いのは他に問題があるんじゃないか? 仮想マシン? > $ uname -mrs > FreeBSD 8.0-BETA2 amd64 > $ ls|wc > 6111 7645 144785 > $ time ls >/dev/null > 0.05 real 0.03 user 0.01 sys > $ time ls -l >/dev/null > 0.23 real 0.11 user 0.10 sys
213 名前:名無しさん@お腹いっぱい。 [2009/08/12(水) 11:41:03 ] >>212 TZがセットされていないと、/etc/localtimeを読むオーバーヘッドがかかる TZ=JST-9なら、直接タイムゾーン換算できる。 stat(2)の結果をctime(3)する時に TZが参照されている。 ただし、TZ=JST-9をセットしても変化はわずかなのでわかりにくいだけ。 多少は改善されてる。
214 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/12(水) 11:42:37 ] FreeBSDってキャッシュを参照するのに変化が分かるほど遅いの?
215 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/12(水) 11:46:56 ] >>212 >… が意味不明 >… の関係も不明 知らないなら「教えてください」って言えよ!
216 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/12(水) 11:58:38 ] >>206 です マシンはDell PowerEdge R300で CPUはCore2Duo E6405 2.13G DISKはSEAGATE ST3146855SS(SAS 15krpm)を2台でRAID1構成 追試 %echo $TZ TZ: Undefined variable. %time ls -l>/dev/null 1.706u 6.062s 0:07.77 99.8% 32+1507k 0+0io 0pf+0w %setenv TZ JST-9; echo $TZ JST-9 %time ls -l>/dev/null 1.815u 5.926s 0:07.76 99.6% 31+1486k 0+0io 0pf+0w 去年の夏頃FreeBSDを普通にセットアップしました。 仮想とか特別なチューニングは全くなし 忙しくなくけっこう遊んでいるマシンだと思ってます。 %vmstat -w 5 procs memory page disks faults cpu r b w avm fre flt re pi po fr sr da0 pa0 in sy cs us sy id 0 0 0 583M 195M 52 0 0 0 94 7 0 0 31 11 99 0 0 99 0 0 0 583M 195M 275 0 0 0 279 0 11 0 33 5527 585 1 1 98 1 1 0 590M 192M 256 0 0 0 155 0 10 0 45 3941 625 1 1 98 0 0 0 583M 194M 723 0 0 0 791 0 11 0 70 6961 795 1 2 97 1 0 0 583M 194M 165 0 0 0 195 0 11 0 166 1574 878 1 1 98 0 0 0 582M 193M 76 0 0 0 63 0 4 0 232 1823 1003 0 1 99
217 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/12(水) 12:31:02 ] raidをやめてみる、もしくは、普通のHDDを1個つけてその上で試す。
218 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/12(水) 12:48:43 ] >>215 論理的に「TZ=JST-9すると速い」はおかしいだろ。 「TZがセットされていると速い」が正しかったわけだ。
219 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/12(水) 12:52:01 ] >>218 TZが単に(不適切に)セットされていると ls -l の表示結果が変わってしまう。 結果を変えないで速くする方法を聞いているんだから、 「Z=JST-9すると速い」が正しい。 「TZがセットされていると速い」では不十分。(減点)
220 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/12(水) 12:57:23 ] つまんねぇドングリのけなしあいしてずに、根本的な原因考えろよ
221 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/12(水) 13:00:55 ] 「してないで」か「せずに」だろ。「してずに」はおかしいよ。
222 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/12(水) 13:01:29 ] >>220 根本的な原因はすでに書かれてるだろ。 stat(2)が遅いファイルシステムを使っているのが原因。
223 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/12(水) 13:02:02 ] 「Z=JST-9」しても速くなる原因は何もないな。 全く持って意味不明。
224 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/12(水) 13:03:38 ] ファイルの読み書き速度はLinux>FreeBSD? pc12.2ch.net/test/read.cgi/unix/1008570087/
225 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/12(水) 13:09:17 ] >>206 です 別なことやってみた。こちらは妥当な結果だと思う %cd /usr/ports %time ls -R > /dev/null 0.159u 0.918s 0:01.07 99.0% 32+1511k 0+0io 0pf+0w %time ls -lR > /dev/null 0.905u 1.734s 0:03.82 68.8% 31+1488k 0+0io 0pf+0w 後出しですみませんが、先ほどの結果は/var/mailです。 ほとんどのファイルのUIDは違う状態。それにしても時間が掛かりすぎですよね RAIDの有無等いろいろ試してみたいと思います。
226 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/12(水) 13:10:12 ] >>222 いや、user timeまで遅いのでファイルシステムの問題じゃ無いように思える。
227 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/12(水) 13:12:29 ] getpwuidが遅いってか
228 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/12(水) 13:14:02 ] /var/mailならpasswd, group(もしくはNIS?)読んでるのが原因か。 ls -lnでどうなる?
229 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/12(水) 13:17:13 ] >>228 状況に変化あり %time ls -ln > /dev/null 0.008u 0.008s 0:00.01 0.0% 0+0k 0+0io 0pf+0w %time ls -l > /dev/null 1.771u 5.933s 0:07.71 99.8% 31+1491k 0+0io 0pf+0w /etc/passwdのみです。NISやLDAPの参照はしていません。
230 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/12(水) 13:18:26 ] たまには、 >>208 >それはソートしてるからだろ。 の、素晴らしいご回答も思い出してあげてください。
231 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/12(水) 13:19:52 ] >>229 /etc/passwdの行数が多過ぎる。または/etc/groupの。
232 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/12(水) 13:19:58 ] /etc/pwd.dbがないとか。 でも、2000人もユーザいたらどうしようもないのかも。 試したことないからわかんねえや。
233 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/12(水) 13:21:40 ] >>229 ユーザー数が多い場合、たとえマシン1台だけでも NIS使った方が速くなるよ。 プレーンテキストの /etc/passwdを読むより、 NISのデータベースを引く方が速いから。
234 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/12(水) 13:23:44 ] FreeBSDならdb化されてるからプレーンテキストはねーだろ。
235 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/12(水) 13:27:48 ] nscdとかないのか・・・
236 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/12(水) 13:31:58 ] こんな結果です %wc /etc/passwd /etc/group 2384 4792 130013 /etc/passwd 270 278 4284 /etc/group 2654 5070 134297 total %ls /etc/*.db /etc/login.conf.db /etc/pwd.db /etc/spwd.db 原因はこのあたりなのは間違いなさそうですね。 アドバイスありがとうございました。いろいろ試そうと思います。
237 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/12(水) 14:31:27 ] これは結果報告に期待
238 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/12(水) 16:09:30 ] 結局馬鹿は ls -l を使うなということでFA?
239 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/12(水) 17:05:02 ] 馬鹿は自分のホームディレクトリくらいしか ls -l しないので問題ない
240 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/12(水) 17:13:38 ] l-_-l l-_-l l -_-l l -_-l l-_,- l
241 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/12(水) 17:30:47 ] l -_-l l-_- ls
242 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/12(水) 17:39:43 ] >>206 ディレクトリエントリが猛烈に肥大化しているってことはない? まだ導入して日の浅い機械のようだしmbox形式のメールスプールならそれはないかな?
243 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/12(水) 18:50:05 ] >>242 >>229 でほぼ原因が特定できてるのに今頃寝言いってんだ?
244 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/12(水) 19:24:30 ] で、>>229 で原因特定できてるけど、対策法は? >>236 によると /etc/pwd.db もあるから、db化の問題でもない。 >>233 の言う通り、NIS使う??
245 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/12(水) 19:26:38 ] stat(2)すら使ったことないようなど素人の分際で会話に入ろうとする身の程知らずって痛いな
246 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/12(水) 19:27:53 ] >>208 >それはソートしてるからだろ。
247 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/12(水) 19:29:17 ] /etc/pwd.dbのファイルがあるだけで、 中身が /etc/passwdと整合してないんじゃないの?
248 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/12(水) 19:32:32 ] username->uidはハッシュで、uid->usernameがリニアサーチなんじゃねーの。
249 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/12(水) 19:33:08 ] それはそうと。
250 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/12(水) 19:38:34 ] ばかばっか
251 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/12(水) 19:40:31 ] >>248 じゃあやっぱりNISで。 yp_match(3) で uid->usernameがハッシュで引けるから。
252 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/12(水) 19:50:30 ] ls -l するためだけに NISサーバ立てるのか。すげー
253 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/12(水) 20:49:40 ] 【アニメ】 庵野秀明、 ヱヴァ新劇場版完結作の総監督を降板表明 「ファンの皆様が納得のいくエヴァの結末を今の僕には作れない」 [08/12] ttp://changi.2ch.net/test/read.cgi/eva/1246974675/l50
254 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/12(水) 23:12:42 ] USBメモリで起動するFreeBSDを作ったんですが、 USBをブートできるマシンじゃなかったので、ブートの部分だけFDで行って その先はUSBのデータを利用して起動したいんですが、 そのようなことは可能でしょうか?
255 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/12(水) 23:24:55 ] >>254 もちろん可能。でもUSBのメリットが半減。
256 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/13(木) 00:09:01 ] >>206 です。解決しました システムコールでも見てみようと以下のコマンド実行してみた %truss -o /tmp/truss.ls.out ls これは問題無し %truss -o /tmp/truss.ls-l.out ls -l 長時間だんまり。CPUを食いつぶしているっぽい。 Ctrl-Cでも止まらない。結局SuspendしてbgしてKILLシグナルで殺した。 trussの不完全な出力を見ると所々で/etc/nsswitch.confを開いていたことがわかった。 /etc/nsswitch.confを見てみたら以下の記述が… group: compat group_compat: nis passwd: compat passwd_compat: nis compatってのはFreeBSD独自?あまり見覚えなかったです。 group: files passwd: files に変更したところ以下の結果になりました。 %time ls > /dev/null 0.000u 0.003s 0:00.00 0.0% 0+0k 0+0io 0pf+0w %time ls -l > /dev/null 0.008u 0.032s 0:00.04 75.0% 40+1880k 0+0io 0pf+0w いろいろありがとうございました。
257 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/13(木) 00:14:54 ] >>256 >>229 >NISやLDAPの参照はしていません。 ↑の発言と正面から矛盾するわけだが、、
258 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/13(木) 00:16:26 ] 糾弾会の会場はここですか?
259 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/13(木) 00:19:48 ] >>257 まさかデフォルト設定がこうなっているとは思っても見なかったので… 意図的にNISを使わないと見ないと思ってました。 お騒がせしてすみませんでした。
260 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/13(木) 00:25:57 ] 矛盾していないのでは? compatってことはSunOSとかと同じ動作でしょ。 最後に+のエントリがあればNISを見るっていう。 質問者がそういうエントリを書いていなければNISの参照まではいってないでしょ。
261 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/13(木) 00:36:22 ] >>256 自分にとってもすごく勉強になったわ 調査乙!
262 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/13(木) 01:02:05 ] > %truss -o /tmp/truss.ls-l.out ls -l > 長時間だんまり。CPUを食いつぶしているっぽい。 > Ctrl-Cでも止まらない。結局SuspendしてbgしてKILLシグナルで殺した。 ここ、もう少し追いかけたいけど技術不足で駄目そう。再現は可能なので時間見つけて頑張ってみます。 ちなみに 試行錯誤の途中で、なんとなくスケジューラーを4BSDにしたりSMP無効にしたりしたけど効果無しでした。
263 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/13(木) 02:47:41 ] 何もかも>>206 が >>>208 >すみませんが詳しい方のみ回答をお願いします。 と言ったせい
264 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/13(木) 04:49:45 ] 何処の誤爆か
265 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/13(木) 06:27:47 ] >>260 矛盾してるだろ。 質問者の /etc/passwdに + で始まる行があるのが原因。 これは、NISを使うと言う意味だから。 ちなみに、nsswitch.confの、passwd: compat や passwd_compat: nis の行は、 デフォルトでそうなってる。それでも、/etc/passwdに +の行がなければ NISは使われない。 >NISやLDAPの参照はしていません。 ↑ と言っているのに /etc/passwdに + の行があった、と言うのは矛盾。 デフォルトの/etc/passwdには +の行がないから、 質問者自身が意図的に +の行を書いたはず。 さらに、対処法としては、デフォルトの nsswitch.confはいじらずに、 /etc/passwdの +の行を削除するのが正解。
266 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/13(木) 06:58:04 ] >>206 です >>263 >>209 は誰か知らない人が書いたようです。 >>260 /etc/passwdには+の行は無いのですよ。 もちろんNISサーバーは立てて無いし、ypほにゃららも動いていない。 そういう意味でNISを使っていないと>>229 で書きました。 /etc/nsswitch.confで明示的にfilesのみにしたところ>>256 のような効果が出ました。
267 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/13(木) 07:06:12 ] /etc/passwdに+の行がないのに、 nsswitch.confのデフォルト(passwd: compat passwd_compat: nis)で遅くなるのか? だとするとOSのバグじゃね? send-prよろしこ。 毎回passwdの+行を見に行く分のオーバーヘッドはあるとしても、pwd.dbで ハッシュ一発だろうから、trussが戻ってこない(>>262 )ほど重くなるのはおかしい。
268 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/13(木) 07:14:07 ] アンカーミス >>266 中の>>260 は>>265
269 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/13(木) 07:27:36 ] >>267 passwdの中に+行があるかどうか調べるため、 まず pwd.db のハッシュを引いて、(それであれば良いが) なければ、再度 /etc/passwdのプレーンテキストを読み込んでサーチする、 という実装になってるんじゃない? pwd.dbでは、検索キーが存在する場合に引くのは速いけど、 検索キーが存在しない場合は pwd.dbだけでは不在証明にならないから、 結局 /etc/passwdを全部読み直すハメになると。 だから、むしろ /etc/passwdに +の行を書いて pwd.dbを更新しておいた方が 速い可能性がある。(ypbindが走ってなければNIS読み込みはしないので)
270 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/13(木) 07:42:43 ] >>269 /etc/nsswitch.confをデフォルトに戻して、/etc/passwdの末尾に+:::::::::を追加してみた。 %time ls -l > /dev/null 1.639u 5.972s 0:07.61 99.8% 32+1501k 0+0io 0pf+0w +行の有無は関係無さそうです。
271 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/13(木) 07:47:08 ] +行に関しては pwd.dbを参照しない実装になってる
272 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/13(木) 07:50:36 ] >>269 もう、発生条件は提示されてるんだから、憶測書き連ねて無いで、 自分で検証すれば?
273 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/13(木) 07:53:25 ] 結論: それは、ソートしてるから by >>208
274 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/13(木) 10:59:47 ] 矛盾してるのは>>265 の脳味噌だったというオチw
275 名前:名無しさん@お腹いっぱい。 [2009/08/13(木) 21:02:46 ] まじでうぜえ・・・・・・・・そこまでにしとけよボンクラ根暗共 俺の総力いくぜ?
276 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/13(木) 21:25:23 ] どうぞどうぞ
277 名前:名無しさん@お腹いっぱい。 [2009/08/13(木) 21:34:52 ] 勘違いしないよういっとくが 俺の総力=俺の総力×皆の総力だからな これだから勘違いやろうのフォモどもは・・・
278 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/13(木) 21:47:40 ] お前の総力は0なので正しい。
279 名前:名無しさん@お腹いっぱい。 [2009/08/13(木) 21:53:44 ] もういいですぶっこいてねるぁ
280 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/13(木) 21:56:09 ] >>277 両辺の次元が一致してないので、理系の人間ではないと見た。 ちなみに 力の次元は、kg*m/s^2
281 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/13(木) 22:07:24 ] >>280 >>277 のいう総力はベクトルでなくスカラー(無次元量)なんだよ。
282 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/13(木) 22:10:33 ] >>281 ベクトルかスカラーかと、 次元を持った量か無次元量か、 は、 それぞれ独立した概念なんだが、、 次元を持ったスカラー量もある。
283 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/13(木) 22:29:43 ] >>282 >次元を持ったスカラー量もある。 例えば?質量や温度もそうなんだっけ?
284 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/13(木) 22:38:43 ] >>269 ソース解析よろ
285 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/13(木) 23:00:36 ] 配布ファイルの nsswitch.confのデフォルトを修正するべきだな。
286 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/13(木) 23:04:57 ] メカニズムを解析せずに表層だけで対処するのは素人
287 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/13(木) 23:08:08 ] >>286 もう、発生条件は提示されてるんだから、憶測書き連ねて無いで、 自分で検証すれば?
288 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/13(木) 23:12:28 ] passwd: compat の場合、メカニズム云々じゃなくて、 passwdの中に +::::::::: があるかどうかを 判断しなければならないことは、原理的に避けられないよ。 いまどき passwd: compat で嬉しい人はほとんどいないから、 デフォルトくらい変更しておくべき。
289 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/13(木) 23:21:02 ] libcの中のgetpwuid()の実装を修正すればいいんじゃないの。 +:::... の有無を1回目に呼ばれた時に static変数で覚えておいて、 同じプログラムから2回目以降に呼ばれた場合はその変数で判断すると。
290 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/13(木) 23:27:41 ] だからそれが素人だと。
291 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/13(木) 23:45:10 ] >>289 MT時代にstatic変数とか、すばらしい実装ですな
292 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/13(木) 23:45:35 ] オウム返しのバカがうざいから再現実験してみた。8-currentでも再現した。 >>288 ファイルオーナーが単一ユーザだと再現しないので、+エントリの検索は無関係。 # for i in `jot 2000 10000`;do echo $i;pw useradd $i -s /usr/sbin/nologin -d /nonexistent -n u$i;touch $i $i;done # time ls -l > /dev/null 7.99 real 2.76 user 4.47 sys # time ls -ln > /dev/null 0.05 real 0.02 user 0.02 sys
293 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/13(木) 23:47:45 ] >>292 ファイルオーナーが単一ユーザの場合、 今度は lsコマンド側でuidのマッピングがキャッシュされてるから速くなるんだよ。 よって、+エントリの検索は関係ある。
294 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/13(木) 23:51:52 ] >>292 ファイルオーナーが単一ユーザだと、 そもそも getpwuid() が1回しか呼ばれないから、速いのは当たり前。 全然的外れ。
295 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/14(金) 00:00:52 ] システムコール見たりしてコソコソやってないで最初からプロファイルとれば 済んだ話だろうが。失せろ。、
296 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/14(金) 00:08:10 ] >>293-294 trussかけてみた。キミ達の憶測は外れ。.dbを読むpreadの呼び出し回数が異常に多い。 $ grep pread /tmp/turss.log |wc 4066001 16264004 256454063 >>295 黙れ。口だけ番長は引っ込んでろ。
297 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/14(金) 00:10:42 ] >>296 だったら、 nsswitch.confで passwd: files にした時に速くなる理由が説明できないが、、
298 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/14(金) 00:39:30 ] おまえら/usr/srcにあるソースという名のマニュアルくらい読めよ getpwuid()のキャッシュは直前の1つのみだ
299 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/14(金) 00:53:23 ] >>298 それではこの現象の説明がつかないのだよ。
300 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/14(金) 00:59:04 ] 妄想をもとにして現実の方が矛盾してる!と叫ぶ某半島人のような方が昨日から……w
301 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/14(金) 01:33:30 ] 基地害チョッパリはどっか逝け
302 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/14(金) 03:09:48 ] 7.2とか8でカスタムカーネル(Build world等々)なんかをするときに システムのメモリ容量は最低どれくらい積んでないとまずい? 少ない容量でも時間がかかるだけで、問題なく処理できるのかしら NTP鯖など単純な鯖を作るときに、Buildの為だけに必要以上のメモリを与えるのも 勿体無いし、かと言って他のファイル鯖なんかに統合するのもどうよって感じで
303 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/14(金) 03:21:22 ] 16MB
304 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/14(金) 03:40:04 ] >>303 Thx そんなものでいいのか どちらかといえば、コンパイルのためのディスク容量の方が必要ってことか...
305 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/14(金) 07:37:29 ] >>297 nsswitch.confで passwd: compatの場合、 /etc/passwdの書式として、今では最終行に +:::::::::を書く書式だけしか 使われなくなっているけど、実は他にもある。 +hoge とか、+@netgroup とか。 この +@netgroup(という仕様が存在すること)が問題。 どういうネットグループが存在するかは、passwdの全行を読んでみないと わからないため、結局あるユーザーのpasswdを引くためには、 全エントリーを読む必要が生じる。 (+@netgroupの書式が存在しないことを確認するためにもpasswdの全行を読む必要がある) よって、passwd: compatの場合は pwd.dbの意味がなくなる。 passwd: compatが遅いのはこのせい。
306 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/14(金) 07:55:20 ] >>305 >>296 の4066001回はpwd.dbをpreadした回数なので、それはダメ推理。