FreeBSDのgmirrorでのエラー - out of memory in startの怪
我が家のサーバはgeomでミラーリングをしているのだけれど、時々「adx: FAILURE - out of memory in start」なエラーメッセージが出てうざい。
結論としては「やっぱり瞬間的にメモリが足りないぽいよね」っていう話なのだけれど、普段は全然メモり使ってないから、何で瞬間的にメモリが足らなくなるのか分からない。
少しだけソース追っかけてみた
とりあえず、/usr/src/sys/dev/ata/ata-disk.cの233行目より。
if (!(request = ata_alloc_request())) { device_printf(dev, "FAILURE - out of memory in start\n"); biofinish(bp, NULL, ENOMEM); return; }
ata_alloc_request()って何じゃらほい?って調べてみると、ata-all.hに。
#define ata_alloc_request() uma_zalloc(ata_request_zone, M_NOWAIT | M_ZERO)
そんなこんなでFreeBSDオンラインマニュアル JPを。
「ブートプロセスのより早い段階で利用可能です」とあるので、geomに使用されたっぽいメモリ確保用の関数。やっぱりメモリが時々足らなくなってるのか。みょーん。うーん、cronさんとかでスクリプト処理してたりするのが辛いのかしら。もし、何か情報をお持ちの方いらっしゃったらお願いします。