MacOSX 下設定 ulimit

2009/10/16
~ 阿亮 ~

最近寫一個 Network Programming 的程式,發現在 Mac 一些預設條件會不夠用,需要調一下。

在 MacOSX 10.5.X 下的 ulimit,可用

sudo launchctl limit

得到一些詳細列表,如下表

        cpu         unlimited      unlimited
        filesize    unlimited      unlimited
        data        6291456        unlimited
        stack       8388608        67104768
        core        0              unlimited
        rss         unlimited      unlimited
        memlock     unlimited      unlimited
        maxproc     512            1024
        maxfiles    512            unlimited

如果要調,只要用 root 身分改 /etc/launchd.conf 即可,如下

limit maxproc   512 1024

看要調哪個參數,重新開機即可。

但其中 stack 預設 8M 不能用這個來調,若需要,可針對各別程式在 compile 過程給予。

 

另外 ulimit -p 調 pipe size 的部份,根據此篇 ,是不能調的,因為程式也會依系統 compile 時,有相依性。

一般 Linux 下 pipe size 有 8*512b,但在 MacOSX 下就只有 1*512b 了,如果有那種 200 個 cat 文字 stdout 導到 pipe write end,而很久之後才接收 pipe read end 的話,在 MacOSX 下就很容易"爆"了,因為隨便一個文件都會超過 512b。

 

當然,實際的應用很少這樣吧,一般都是 pipe read/write 都接通時,才會傳資料的。

 

20100124 Update.

shmget  是有上限的,可以用下述方法查得

sysctl -a |grep shmmax

這個是可以調的,比如要調成 1G

sudo sysctl -w kern.sysv.shmmax=1073741824
sudo sysctl -w kern.sysv.shmall=1073741824
加入書籤:
  • Digg
  • del.icio.us
  • Hemidemi
  • MyShare
  • Technorati
  • Haohao
  • MisterWong
  • email
  • Facebook
  • MySpace
  • Live
  • Print
  • Google Bookmarks
  • PDF
  • Yahoo! Bookmarks

相關文章

  • No Related Post

歡迎留言

敝站會審核留言的適宜性,您的留言可能會較晚發佈,而且小弟保留刪除的權利!!

以下圖像請用滑鼠「拖曳」到編輯區即可用