トップページunix
1001コメント289KB

初心者もOK! FreeBSD質問スレッド その103

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2009/08/02(日) 15:10:20
FreeBSD 関連の質問はここで。
事前にハンドブック閲覧や過去ログ検索等の自助努力をすることが望ましい。
再現性情報(ハードウェア・ソフトウェア・エラーメッセージ)の記載は必須。
sysutils/sysinfoなんていれておくといいかもよ。

The FreeBSD Project
http://www.freebsd.org/ja/

FreeBSD ハンドブック
http://www.freebsd.org/doc/ja/books/handbook/

過去ログ
http://www9.atwiki.jp/freebsd/

前スレ
初心者もOK! FreeBSD質問スレッド その102
http://pc12.2ch.net/test/read.cgi/unix/1243461056/
0267名無しさん@お腹いっぱい。2009/08/13(木) 07:06:12
/etc/passwdに+の行がないのに、
nsswitch.confのデフォルト(passwd: compat passwd_compat: nis)で遅くなるのか?

だとするとOSのバグじゃね? send-prよろしこ。

毎回passwdの+行を見に行く分のオーバーヘッドはあるとしても、pwd.dbで
ハッシュ一発だろうから、trussが戻ってこない(>>262)ほど重くなるのはおかしい。
0268名無しさん@お腹いっぱい。2009/08/13(木) 07:14:07
アンカーミス
>>266中の>>260>>265
0269名無しさん@お腹いっぱい。2009/08/13(木) 07:27:36
>>267
passwdの中に+行があるかどうか調べるため、
まず pwd.db のハッシュを引いて、(それであれば良いが)
なければ、再度 /etc/passwdのプレーンテキストを読み込んでサーチする、
という実装になってるんじゃない?

pwd.dbでは、検索キーが存在する場合に引くのは速いけど、
検索キーが存在しない場合は pwd.dbだけでは不在証明にならないから、
結局 /etc/passwdを全部読み直すハメになると。

だから、むしろ /etc/passwdに +の行を書いて pwd.dbを更新しておいた方が
速い可能性がある。(ypbindが走ってなければNIS読み込みはしないので)
0270名無しさん@お腹いっぱい。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

+行の有無は関係無さそうです。
0271名無しさん@お腹いっぱい。2009/08/13(木) 07:47:08
+行に関しては pwd.dbを参照しない実装になってる
0272名無しさん@お腹いっぱい。2009/08/13(木) 07:50:36
>>269
もう、発生条件は提示されてるんだから、憶測書き連ねて無いで、
自分で検証すれば?
0273名無しさん@お腹いっぱい。2009/08/13(木) 07:53:25
結論: それは、ソートしてるから by >>208
0274名無しさん@お腹いっぱい。2009/08/13(木) 10:59:47
矛盾してるのは>>265の脳味噌だったというオチw
0275名無しさん@お腹いっぱい。2009/08/13(木) 21:02:46
まじでうぜえ・・・・・・・・そこまでにしとけよボンクラ根暗共
俺の総力いくぜ?
0276名無しさん@お腹いっぱい。2009/08/13(木) 21:25:23
どうぞどうぞ
0277名無しさん@お腹いっぱい。2009/08/13(木) 21:34:52
勘違いしないよういっとくが
俺の総力=俺の総力×皆の総力だからな
これだから勘違いやろうのフォモどもは・・・
0278名無しさん@お腹いっぱい。2009/08/13(木) 21:47:40
お前の総力は0なので正しい。
0279名無しさん@お腹いっぱい。2009/08/13(木) 21:53:44
もういいですぶっこいてねるぁ
0280名無しさん@お腹いっぱい。2009/08/13(木) 21:56:09
>>277
両辺の次元が一致してないので、理系の人間ではないと見た。

ちなみに 力の次元は、kg*m/s^2
0281名無しさん@お腹いっぱい。2009/08/13(木) 22:07:24
>>280
>>277のいう総力はベクトルでなくスカラー(無次元量)なんだよ。
0282名無しさん@お腹いっぱい。2009/08/13(木) 22:10:33
>>281
ベクトルかスカラーかと、
次元を持った量か無次元量か、
は、
それぞれ独立した概念なんだが、、

次元を持ったスカラー量もある。
0283名無しさん@お腹いっぱい。2009/08/13(木) 22:29:43
>>282
>次元を持ったスカラー量もある。

例えば?質量や温度もそうなんだっけ?
0284名無しさん@お腹いっぱい。2009/08/13(木) 22:38:43
>>269
ソース解析よろ
0285名無しさん@お腹いっぱい。2009/08/13(木) 23:00:36
配布ファイルの nsswitch.confのデフォルトを修正するべきだな。
0286名無しさん@お腹いっぱい。2009/08/13(木) 23:04:57
メカニズムを解析せずに表層だけで対処するのは素人
0287名無しさん@お腹いっぱい。2009/08/13(木) 23:08:08
>>286
もう、発生条件は提示されてるんだから、憶測書き連ねて無いで、
自分で検証すれば?
0288名無しさん@お腹いっぱい。2009/08/13(木) 23:12:28
passwd: compat の場合、メカニズム云々じゃなくて、
passwdの中に +::::::::: があるかどうかを
判断しなければならないことは、原理的に避けられないよ。

いまどき passwd: compat で嬉しい人はほとんどいないから、
デフォルトくらい変更しておくべき。
0289名無しさん@お腹いっぱい。2009/08/13(木) 23:21:02
libcの中のgetpwuid()の実装を修正すればいいんじゃないの。
+:::... の有無を1回目に呼ばれた時に static変数で覚えておいて、
同じプログラムから2回目以降に呼ばれた場合はその変数で判断すると。
0290名無しさん@お腹いっぱい。2009/08/13(木) 23:27:41
だからそれが素人だと。
0291名無しさん@お腹いっぱい。2009/08/13(木) 23:45:10
>>289
MT時代にstatic変数とか、すばらしい実装ですな
0292名無しさん@お腹いっぱい。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
0293名無しさん@お腹いっぱい。2009/08/13(木) 23:47:45
>>292
ファイルオーナーが単一ユーザの場合、
今度は lsコマンド側でuidのマッピングがキャッシュされてるから速くなるんだよ。

よって、+エントリの検索は関係ある。
0294名無しさん@お腹いっぱい。2009/08/13(木) 23:51:52
>>292
ファイルオーナーが単一ユーザだと、
そもそも getpwuid() が1回しか呼ばれないから、速いのは当たり前。
全然的外れ。
0295名無しさん@お腹いっぱい。2009/08/14(金) 00:00:52
システムコール見たりしてコソコソやってないで最初からプロファイルとれば
済んだ話だろうが。失せろ。、
0296名無しさん@お腹いっぱい。2009/08/14(金) 00:08:10
>>293-294
trussかけてみた。キミ達の憶測は外れ。.dbを読むpreadの呼び出し回数が異常に多い。
$ grep pread /tmp/turss.log |wc
4066001 16264004 256454063

>>295
黙れ。口だけ番長は引っ込んでろ。
0297名無しさん@お腹いっぱい。2009/08/14(金) 00:10:42
>>296
だったら、
nsswitch.confで passwd: files にした時に速くなる理由が説明できないが、、
0298名無しさん@お腹いっぱい。2009/08/14(金) 00:39:30
おまえら/usr/srcにあるソースという名のマニュアルくらい読めよ
getpwuid()のキャッシュは直前の1つのみだ
0299名無しさん@お腹いっぱい。2009/08/14(金) 00:53:23
>>298
それではこの現象の説明がつかないのだよ。
0300名無しさん@お腹いっぱい。2009/08/14(金) 00:59:04
妄想をもとにして現実の方が矛盾してる!と叫ぶ某半島人のような方が昨日から……w
0301名無しさん@お腹いっぱい。2009/08/14(金) 01:33:30
基地害チョッパリはどっか逝け
0302名無しさん@お腹いっぱい。2009/08/14(金) 03:09:48
7.2とか8でカスタムカーネル(Build world等々)なんかをするときに
システムのメモリ容量は最低どれくらい積んでないとまずい?

少ない容量でも時間がかかるだけで、問題なく処理できるのかしら
NTP鯖など単純な鯖を作るときに、Buildの為だけに必要以上のメモリを与えるのも
勿体無いし、かと言って他のファイル鯖なんかに統合するのもどうよって感じで

0303名無しさん@お腹いっぱい。2009/08/14(金) 03:21:22
16MB
0304名無しさん@お腹いっぱい。2009/08/14(金) 03:40:04
>>303
Thx

そんなものでいいのか
どちらかといえば、コンパイルのためのディスク容量の方が必要ってことか...
0305名無しさん@お腹いっぱい。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が遅いのはこのせい。
0306名無しさん@お腹いっぱい。2009/08/14(金) 07:55:20
>>305
>>296の4066001回はpwd.dbをpreadした回数なので、それはダメ推理。
0307名無しさん@お腹いっぱい。2009/08/14(金) 07:57:36
>>306
pwd.dbをpreadしたうえでpasswdも(p)readするという駄目実装になっているんだよ。

で、pwd.dbのpread自体は高速なので、回数が多くてもこの場合の問題とは関係ない。
0308名無しさん@お腹いっぱい。2009/08/14(金) 08:01:23
>>307
ダメな奴だな。trussしてから言えよ。pwd.dbのpread回数だよ。
0309名無しさん@お腹いっぱい。2009/08/14(金) 08:02:36
>>306
じゃあ、pwd.dbだけを読んで、+@hoge とか +@boke とか
(hoge や bokeの名前は未知)が「存在しない」ことを確認できるか?
pwd.dbは、あくまで既知の名前を引く時しか役に立たないから。
0310名無しさん@お腹いっぱい。2009/08/14(金) 08:06:28
>>308
だから、検索キーを使わずに、pwd.dbの全エントリを毎回読み直してるんじゃないの?
シーケンシャルにpwd.dbを読むモードもあるでしょ。
全エントリを読む必要があるのは passwd: compatの場合のみ。
これで説明が付く。

passwd: filesの場合は、userをキーにして1回読むだけで済むから速い。
passwd: compatの場合は、+@net とかの関係で全エントリを読むから遅い。
0311名無しさん@お腹いっぱい。2009/08/14(金) 08:37:55
>>310
答え
0312名無しさん@お腹いっぱい。2009/08/14(金) 09:07:36
>>309
現実より、妄想が優先する人ですか? trussしてから出直しな。
0313名無しさん@お腹いっぱい。2009/08/14(金) 09:15:10
>>312
>>310 に答が出てるから、出直すも何もこれで議論解決だよ。

ついでに言うと、>>308 は trussで実験したはいいが、
「なぜ passwd: compatとfilesに違いが出るのか」については一切解明していない。

passwdかpwd.dbかの違いはあまり問題ではなくて、
エントリを「ひとつだけ読む」か「全部読む」かの違いなんだな。
その意味では、>>288 の時点で答えに近いところがすでに書かれていた。
0314名無しさん@お腹いっぱい。2009/08/14(金) 09:35:51
>>313
キミ達のように妄想書きなぐるだけじゃ無くて、確認しながら進めてるからな。

> passwd: compatの場合は、+@net とかの関係で全エントリを読むから遅い。
残念ながら、これは完全な答では無いんだ。compatでも速い場合がある。
0315名無しさん@お腹いっぱい。2009/08/14(金) 09:45:23
>>314
passwd_compat: dns とか言うなよ。passwd_compat: nisの話をしてるんだから。
0316名無しさん@お腹いっぱい。2009/08/14(金) 09:59:40
>>315
お前、10周位遅れている。邪魔だから引っ込んでろ。
passwd: compat
0317名無しさん@お腹いっぱい。2009/08/14(金) 10:01:21
>>316 は何を言ってるんだ?
passwd: compatの中に、

passwd_compat: nis と
passwd_compat: dns の
2種類の設定があるんだが。
0318名無しさん@お腹いっぱい。2009/08/14(金) 10:03:39
−−−−−−−−−−−−−−−−−−−ここまで全部俺の自作自演−−−−−−−−−−−−−−−−−−−
0319名無しさん@お腹いっぱい。2009/08/14(金) 10:04:06
>>314
そりゃ、passwd: compatだろうが何だろうが、
passwdの行数自体が最初から少なければ速いよ。それは当たり前。
0320名無しさん@お腹いっぱい。2009/08/14(金) 10:06:41
>>316は妄想全開な人でしょ。
自分が観察した一部分から妄想を構築してしまって
妄想と事実の区別がつかないタイプ。
0321名無しさん@お腹いっぱい。2009/08/14(金) 10:06:49
>>314 は、passwdのエントリーが多くて、passwd: compatでも、
ls -l するファイルが同一ユーザーだったら速い、とか、
そういう当たり前過ぎることをわざわざ言おうとしてるのではないだろうか。
0322名無しさん@お腹いっぱい。2009/08/14(金) 10:14:06
>>319-321
妄想書きなぐってないで、自分で検証してから言え。クズ共
0323名無しさん@お腹いっぱい。2009/08/14(金) 10:55:10
で、結局結論は >>310 として、具体的な対応策はどうよ?
nsswitch.confのデフォルトを passwd: filesの方に振るのが妥当じゃないか?

今現在、passwd: compatを *本当に* 使ってる人なんて居る?
NISユーザー自体が少ない上に compatのユーザーはほぼ 0 じゃないか?
0324名無しさん@お腹いっぱい。2009/08/14(金) 13:24:01
>>323
対応策?今のままでいい
0325名無しさん@お腹いっぱい。2009/08/14(金) 17:02:24
対応策?他の unix 系 os に乗り換えるのが妥当
0326名無しさん@お腹いっぱい。2009/08/14(金) 17:05:25
わかりました。Linuxに戻します。
0327名無しさん@お腹いっぱい。2009/08/14(金) 18:09:53
わかりました。inaxにします。
0328名無しさん@お腹いっぱい。2009/08/14(金) 18:14:59
では次の方どうぞ
0329名無しさん@お腹いっぱい。2009/08/14(金) 19:46:22
OS Xが欲しいんですが、高いから買う気がしません。
どうしたらいいですか?
0330名無しさん@お腹いっぱい。2009/08/14(金) 20:08:44
最近だとMac Book が安くなってるはずだが
それかMac miniか
0331名無しさん@お腹いっぱい。2009/08/14(金) 20:38:09
それでも同価格のタワー型PCと比較するとどうしても引けを取っちゃうよね。
0332名無しさん@お腹いっぱい。2009/08/14(金) 20:51:26
>>329
この板へ書きこむってぇこたぁ頭じゃOS Xを欲しがってても
体はFreeBSDを欲しがってんだよ。
0333名無しさん@お腹いっぱい。2009/08/14(金) 21:34:48
>>329
すみません。今度から平積みしておきます。
0334名無しさん@お腹いっぱい。2009/08/14(金) 21:56:01
あのさ、もうちょっと面白いネタないの?
0335名無しさん@お腹いっぱい。2009/08/14(金) 22:25:01
nsswitchネタはSN比はともかくけっこう面白かった
0336名無しさん@お腹いっぱい。2009/08/14(金) 22:32:05
yacc(1)にバグ…
reader.cの関数advance_to_start()にバグがあり、
構文規則の定義の一番初めのルールの左辺の非終端記号の
最初の文字に'$'が使えない。

深刻…
0337名無しさん@お腹いっぱい。2009/08/14(金) 22:45:58
深刻な例を挙げてくれ

あとbisonじゃだめなん?
0338名無しさん@お腹いっぱい。2009/08/14(金) 23:30:12
タンポンがいいです
0339名無しさん@お腹いっぱい。2009/08/15(土) 00:47:23
>>336
修正よろ
0340名無しさん@お腹いっぱい。2009/08/15(土) 01:09:13
>>336 とりあえず send-pr
0341名無しさん@お腹いっぱい。2009/08/15(土) 06:10:39
質問です…
FreeBSD.でXorg.をboot.の時点で起動させたらですが…
やはり、FC4.が起動すると云う事でしょうか?
0342名無しさん@お腹いっぱい。2009/08/15(土) 06:17:37
日本語でおk
0343名無しさん@お腹いっぱい。2009/08/15(土) 06:30:12
>>341
それはソートしてるからだろ。
03443362009/08/15(土) 12:55:29
>>337
こうゆう風に出来ないってこと。
===================
%%
$start: expr;
expr:
...
%%
==================

>>339
advance_to_start()のなかで'_'と比較してるところが2ヶ所あるんですが、
その一つを'$'との比較に変更すればいい。他の場所では最後に'$'との
比較が来るのでそれに合わせた方がいいでしょう。
03453362009/08/15(土) 13:13:55
だれかにお願いsend-pr
0346名無しさん@お腹いっぱい。2009/08/15(土) 13:15:55
ディスクエラーなどで起動プロセスが失敗した場合、
強制的に

fsck -y ; exit

みたいなコマンドを実行して、自動的にディスクチェックして起動するような事ってできますか?
0347名無しさん@お腹いっぱい。2009/08/15(土) 13:38:36
起動プロセスのエラー原因をディスクエラーと特定するのは困難そうだな。
0348名無しさん@お腹いっぱい。2009/08/15(土) 13:41:30
2009年にもなってfsckが必要なファイルシステムとか、、
0349名無しさん@お腹いっぱい。2009/08/15(土) 13:51:19
不要なファイルシステムって?
0350名無しさん@お腹いっぱい。2009/08/15(土) 14:06:10
iso9660とかじゃね?
0351名無しさん@お腹いっぱい。2009/08/15(土) 14:15:45
古め(PenM1Ghz, MEM1G)のノートにFreeBSD8入れてKDE4入れたら
重すぎて吹いた。WinXP + Cygwinで我慢する事にした。
03523512009/08/15(土) 14:16:25
誤爆しました。すみません。
0353名無しさん@お腹いっぱい。2009/08/15(土) 14:18:21
ZFS
0354名無しさん@お腹いっぱい。2009/08/15(土) 14:35:16
ZFSって、使った事無いけど、
HDD挿すだけで何もせずにその瞬間領域が拡張されるんでしょ?
しかも、書き換えの時、一時領域に書き込んで、書き込みが完了してからインデックスから指す位置を変更するから
絶対ファイルが壊れないんだよね?
めっさ便利だと思うが。
0355名無しさん@お腹いっぱい。2009/08/15(土) 14:43:36
宣伝文句に踊らされすぎw
拡張されるって、一体どのポイントが拡張されるんだよw
/varを拡張したいとか/usrを拡張したいとかあるのに
いきなり、決め打ちで拡張されるってか?
多少なりとも設定はあるぞw
0356名無しさん@お腹いっぱい。2009/08/15(土) 15:03:26
箱からだしてスイッチを入れただけで上手くいくに決まってる
0357名無しさん@お腹いっぱい。2009/08/15(土) 15:05:50
彼女いない歴==年齢だったけど、ZFSにしたらスグに彼女出来た。
すげーよ。ZFS
0358名無しさん@お腹いっぱい。2009/08/15(土) 15:06:01
そりゃSunだからな。
Sunにハードからシステムまで全部任せておけば
何も怖い事は無い。箱から出したらすぐ使えるし
HDDに障害が起きても、Sunから買ってきて差し替えるだけで全て上手く行く。
何も怖がる事は無いよ。だってSunだもの。
0359名無しさん@お腹いっぱい。2009/08/15(土) 15:07:50
ZFSにしたらエンジニアが要らなくなりました。
0360名無しさん@お腹いっぱい。2009/08/15(土) 16:03:26
Tux3をFreeBSDに移植しよう
0361名無しさん@お腹いっぱい。2009/08/15(土) 16:06:06
BSDならHAMMERファイルシステムだろ
0362名無しさん@お腹いっぱい。2009/08/15(土) 16:34:53
FreeBSDのyaccってどういう由来のyaccだっけ?
AT&T UNIX由来じゃなくて、BSD版yaccかな。
いずれにしても他の*BSDにも同じバグがありそう。
0363名無しさん@お腹いっぱい。2009/08/15(土) 16:36:18
>>351
XP + Cygwinの方が重いだろw
0364名無しさん@お腹いっぱい。2009/08/15(土) 16:51:37
>>355
お前の言うことは間違っちゃいないが、単一の ZFS root にしとけば
その辺も楽になれるのかもしれん。
0365名無しさん@お腹いっぱい。2009/08/15(土) 17:02:21
zfsルートからブート出来るようになったのか?
0366名無しさん@お腹いっぱい。2009/08/15(土) 17:20:13
>>365
とっくに可能
■ このスレッドは過去ログ倉庫に格納されています