close

Most operating systems provide program interfaces for performing operations involving the sending and receiving of data over sockets. Most operating systems also provide administrative capabilities to control the amount of memory allocated per socket that is used as data buffers.

ref : http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=%2Fcom.ibm.websphere.nd.doc%2Finfo%2Fae%2Fae%2Ftrun_ha_cfg_socket.html

 

To help minimization of packet loss, the operating system socket buffers need to be large enough to handle the incoming network traffic while your Java application is paused during garbage collection. By default Coherence will attempt to allocate a socket buffer of 2MB. If your operating system is not configured to allow for large buffers Coherence will use smaller buffers. Most versions of UNIX have a very low default buffer limit, which should be increased to at least 2MB.

ref : http://docs.oracle.com/cd/E14526_01/coh.350/e14509/perftune.htm#CACIEGCC

 

通常在network 資料傳送時 , operating system 在Computer 與 network之間會藉由一個socket buffer來調節兩邊的速度.

但是若socket連線過於頻繁 , 且速度太快時 , 而java application又來不及處理掉一些garbage , 加上作業系統要將data從buffer

搬到disk時可能還沒搬完 , 這時候如果從網路上抓的資料可能就會一值堆積在socket buffer之中 , 導致時間一久便使得沒有buffer space可用.

arrow
arrow
    全站熱搜

    JerryCheng 發表在 痞客邦 留言(0) 人氣()