kern.maxfiles
¡¡¡¡kern.maxfiles
¿ÉÒÔ¸ù¾ÝϵͳµÄÐèÒªÊʵ±Ôö¼õ¡£
Õâ¸ö±äÁ¿ÓÃÓÚÖ¸¶¨ÔÚϵͳÖÐÔÊÐíµÄÎļþÃèÊö·ûµÄ×î´óÊýÁ¿¡£ µ±ÎļþÃèÊö·û±íÂúµÄʱºò£¬
¡°file: table is full¡± »áÔÚϵͳÏûÏ¢»º³åÇøÖз´¸´³öÏÖ£¬
Äú¿ÉÒÔʹÓà dmesg ÃüÁîÀ´¹Û²ìÕâÒ»ÏÖÏó¡£
¡¡¡¡Ã¿¸ö´ò¿ªµÄÎļþ¡¢ Ì×½Ó×ֺ͹ܵÀ£¬ ¶¼»áÕ¼ÓÃÒ»¸öÎļþÃèÊö·û¡£ ÔÚ´óÐÍÉú²ú·þÎñÆ÷ÉÏ£¬ ¿ÉÄÜ»áÇáÒ×µØÓõôÊýǧ¸öÎļþÃèÊö·û£¬ ¾ßÌåÓÃÁ¿È¡¾öÓÚ·þÎñµÄÀàÐͺͲ¢ÐÐÆô¶¯µÄ·þÎñÊýÁ¿¡£
¡¡¡¡ÔÚÔçÆÚ°æ±¾µÄ FreeBSD ÖУ¬ kern.maxfiles
µÄĬÈÏÖµ£¬
ÊǸù¾ÝÄúÄÚºËÅäÖÃÎļþÖÐµÄ maxusers
Ñ¡Ïî¼ÆËãµÄ¡£ kern.maxfiles
Õâ¸öÊýÖµ£¬ »áËæ maxusers
³É±ÈÀýµØÔö¼õ¡£ µ±±àÒë¶¨ÖÆµÄÄÚºËʱ£¬ °´ÕÕÄúϵͳµÄÓÃ;À´ÐÞ¸ÄÕâ¸öÖµÊǸöºÃÖ÷Òâ¡£
Õâ¸öÊý×Öͬʱ»¹¾ö¶¨Äں˵ÄÐí¶àÔ¤ÉèµÄÏÞÖÆÖµ¡£ ÓÐʱ£¬ ¾¡¹Ü²¢²»»áÕæµÄÓÐ 256
¸öÓû§Í¬Ê±Á¬½Óһ̨Éú²ú·þÎñÆ÷£¬ µ«¶ÔÓڸ߸ºÔØµÄ web ·þÎñÆ÷¶øÑÔ£¬
È´¿ÉÄÜÐèÒªÓëÖ®ÀàËÆµÄ×ÊÔ´¡£
¡¡¡¡±äÁ¿ kern.maxusers
»áÔÚϵͳÆô¶¯Ê±£¬
¸ù¾Ý¿ÉÓÃÄÚ´æµÄ³ß´ç½øÐмÆË㣬 ÔÚÄں˿ªÊ¼ÔËÐÐÖ®ºó£¬ ¿ÉÒÔͨ¹ýÖ»¶ÁµÄ kern.maxusers
sysctl ±äÁ¿ÖµÀ´½øÐй۲졣 ÓÐЩÇé¿öÏ£¬
¿ÉÄÜ»áÏ£ÍûʹÓøü´ó»ò¸üСһЩµÄ kern.maxusers
£¬
Ëü¿ÉÒÔÒÔ¼ÓÔØÆ÷±äÁ¿µÄÐÎʽ½øÐÐÅäÖã» ÀàËÆ 64¡¢ 128 ºÍ 256 ÕâÑùµÄÖµ¶¼²¢²»º±¼û¡£
ÎÒÃDz»ÍƼöʹÓó¬¹ý 256 µÄÖµ£¬ ³ý·ÇÄúÐèÒª¾ÞÁ¿µÄÎļþÃèÊö·û£» ¸ù¾Ý kern.maxusers
ÍÆËãĬÈÏÖµµÄÄÇЩ±äÁ¿£¬ Ò»°ã¶¼¿ÉÒÔÔÚÒýµ¼ÉõÖÁÔËÐÐʱͨ¹ý
/boot/loader.conf (Çë²Î¼û loader.conf(5) Áª»úÊÖ²á»ò
/boot/defaults/loader.conf ÎļþÀ´»ñµÃÏà¹ØµÄÖ¸µ¼)
»òÕâÆªÎĵµµÄÆäÓಿ·ÖËù½éÉܵķ½Ê½À´µ÷Õû¡£
¡¡¡¡ÔÚ½ÏÔçµÄ°æ±¾ÖУ¬ Èç¹ûÄúÃ÷È·µØ½« maxusers ÉèÖÃΪ 0£¬ Ôòϵͳ»á×Ô¶¯µØ¸ù¾ÝÓ²¼þÅäÖÃÀ´È·¶¨Õâ¸öÖµ¡£[1]¡£ ÔÚ FreeBSD 5.X ºÍ¸ü¸ß°æ±¾ÖУ¬ maxusers Èç¹û²»Ö¸¶¨µÄ»°£¬ ¾Í»áȡĬÈÏÖµ 0¡£ Èç¹ûÏ£Íû×ÔÐйÜÀí maxusers£¬ ÔòÓ¦ÅäÖÃÒ»¸ö²»µÍÓÚ 4 µÄÖµ£¬ ÌØ±ðÊÇʹÓà X Window System »ò±àÒëÈí¼þµÄʱºò¡£ ÕâÑù×öµÄÔÒòÊÇ£¬ maxusers Ëù¾ö¶¨µÄÒ»¸ö×îÎªÖØÒªµÄ±íµÄ³ß´ç»áÓ°Ïì×î´ó½ø³ÌÊý£¬ Õâ¸öÊýÖµ½«ÊÇ 20 + 16 * maxusers¡£ Òò´ËÈç¹û½« maxusers ÉèÖÃΪ 1£¬ Äú¾ÍÖ»ÄÜͬʱÔËÐÐ 36 ¸ö½ø³Ì£¬ Õ⻹°üÀ¨ÁË 18 ¸ö×óÓÒµÄϵͳÒýµ¼Ê±Æô¶¯µÄ½ø³Ì£¬ ÒÔ¼° 15 ¸ö×óÓҵģ¬ ÔÚÄúÆô¶¯ X Window System ʱËùÒý·¢µÄ½ø³Ì¡£ ¼´Ê¹ÊǼòµ¥µÄÈÎÎñ£¬ ÈçÔĶÁÁª»úÊֲᣬ Ò²ÐèÒªÆô¶¯¶àÖÁ¾Å¸öµÄ½ø³Ì£¬ ÓÃÒÔ¹ýÂË¡¢ ½âѹËõ£¬ ²¢ÏÔʾËü¡£ ½« maxusers ÉèΪ 64 ½«ÔÊÐíÄúͬʱִÐÐ×î¶à 1044 ¸ö½ø³Ì£¬ Õ⼸ºõ×ãÒÔÂú×ãÈκÎÐèÒªÁË¡£ ²»¹ý£¬ Èç¹ûÄú¿´ÔÚÆô¶¯ÆäËü³ÌÐò£¬ »òÔËÐÐÓÃÒÔÖ§³Ö´óÁ¿Óû§µÄ·þÎñ (ÀýÈç ftp.FreeBSD.org) ʱ£¬ ¿´µ½ÁîÈ˵£ÓÇµÄ proc table full ´íÎó£¬ ¾ÍÓ¦¸ÃÌá¸ßÕâÒ»ÊýÖµ£¬ ²¢ÖØÐÂÁª±àÄںˡ£
×¢Òâ: maxusers ²¢ ²»ÄÜ ÏÞÖÆÊµ¼ÊÄܹ»µÇ¼µ½ÄúϵͳÉÏÀ´µÄÓû§µÄÊýÁ¿¡£ ËüµÄÖ÷Òª×÷ÓÃÊǸù¾ÝÄú¿ÉÄÜÖ§³ÖµÄÓû§ÊýÁ¿À´ÎªÒ»ÏµÁÐϵͳÊý¾Ý±íÉèÖúÏÀíµÄ³ß´ç£¬ ÒÔ±ãÌṩ֧³ÖËûÃÇËùÐèÔËÐеĽø³Ì×ÊÔ´¡£
kern.ipc.somaxconn
¡¡¡¡kern.ipc.somaxconn
sysctl ±äÁ¿ ÏÞÖÆÁ˽ÓÊÕРTCP
Á¬½ÓÕìÌý¶ÓÁеĴóС¡£¶ÔÓÚÒ»¸ö¾³£´¦ÀíÐÂÁ¬½ÓµÄ¸ß¸ºÔØ web·þÎñ»·¾³À´Ëµ£¬Ä¬È쵀 128 ̫СÁË¡£ ´ó¶àÊý»·¾³Õâ¸öÖµ½¨ÒéÔö¼Óµ½ 1024
»òÕ߸ü¶à¡£ ·þÎñ½ø³Ì»á×Ô¼ºÏÞÖÆÕìÌý¶ÓÁеĴóС(ÀýÈç sendmail(8) »òÕß Apache)£¬ ³£³£ÔÚËüÃǵÄÅäÖÃÎļþÖÐÓÐÉèÖöÓÁдóСµÄÑ¡Ïî¡£
´óµÄÕìÌý¶ÓÁжԷÀÖ¹¾Ü¾ø·þÎñ DoS ¹¥»÷Ò²»áÓÐËù°ïÖú¡£
¡¡¡¡NMBCLUSTERS ÄÚºËÅäÖÃÑ¡ÏîÖ¸³öÁËϵͳ¿ÉÓõÄÍøÂçMbufµÄÊýÁ¿¡£
Ò»¸ö¸ßÁ÷Á¿µÄ·þÎñÆ÷ʹÓÃÒ»¸öСÊýÄ¿µÄÍøÂ绺´æ»áÓ°Ïì FreeBSD µÄÐÔÄÜ¡£ ÿ¸ö cluster
¿ÉÄÜÐèÒª2KÄڴ棬ËùÒÔÒ»¸ö1024µÄÖµÐèÒªÔÚÄÚºËÖиøÍøÂ绺´æ±£Áô2MÄÚ´æ¡£
¿ÉÒÔÓüòµ¥µÄ·½·¨¼ÆËã³öÀ´ÐèÒª¶àÉÙÍøÂ绺´æ¡£
Èç¹ûÄúÓÐÒ»¸öͬʱ·¢Éú1000¸öÒÔÉÏÁ¬½ÓµÄweb·þÎñÆ÷£¬ ²¢ÇÒÿ¸öÁ¬½ÓÓõô16K½ÓÊպͷ¢ËÍ»º´æ£¬
¾ÍÐèÒª´ó¸Å32MÍøÂ绺´æÀ´È·±£web·þÎñÆ÷µÄ¹¤×÷¡£
Ò»¸öºÃµÄ¼òµ¥¼ÆËã·½·¨ÊdzËÒÔ2£¬ËùÒÔ2x32Mb/2Kb=64MB/2kb=32768¡£
ÎÒÃǽ¨ÒéÔÚÓдóÁ¿ÄÚ´æµÄ»úÆ÷ÉϰÑÕâ¸öÖµÉèÖÃÔÚ4096µ½32768Ö®¼ä¡£
ûÓбØÒª°ÑËüÉèÖóÉÈÎÒâÌ«¸ßµÄÖµ£¬Ëü»áÔÚÆô¶¯Ê±ÒýÆð±ÀÀ£¡£ netstat(1) µÄ -m
Ñ¡Ïî¿ÉÒÔÓÃÀ´¹Û²ìÍøÂçclusterʹÓÃÇé¿ö¡£
¡¡¡¡kern.ipc.nmbclusters
¿ÉÒÔÓÃÀ´ÔÚÆô¶¯Ê±¿Ìµ÷½ÚÕâ¸ö¡£
½ö½öÔھɰ汾µÄ FreeBSD ÐèҪʹÓà NMBCLUSTERS config(8) Ñ¡Ïî¡£
¡¡¡¡¾³£Ê¹Óà sendfile(2)
ϵͳµ÷Óõķ±Ã¦µÄ·þÎñÆ÷£¬ ÓбØÒªÍ¨¹ý NSFBUFS ÄÚºËÑ¡Ïî»òÕßÔÚ
/boot/loader.conf (²é¿´ loader(8) ÒÔ»ñµÃ¸ü¶àϸ½Ú)
ÖÐÉèÖÃËüµÄÖµÀ´µ÷½Ú sendfile(2) »º´æÊýÁ¿¡£
Õâ¸ö²ÎÊýÐèÒªµ÷½ÚµÄÆÕͨÔÒòÊÇÔÚ½ø³ÌÖп´µ½ sfbufa ״̬¡£sysctl
kern.ipc.nsfbufs
±äÁ¿ÔÚÄÚºËÅäÖñäÁ¿ÖÐÊÇÖ»¶ÁµÄ¡£ Õâ¸ö²ÎÊýÊÇÓÉ
kern.maxusers
¾ö¶¨µÄ£¬È»¶øËü¿ÉÄÜÓбØÒªÒò´Ë¶øµ÷Õû¡£
ÖØÒª: ¼´Ê¹Ò»¸öÌ×½Ó×Ö±»±ê¼Ç³É·Ç×èÈû£¬ÔÚÕâ¸ö·Ç×èÈûµÄÌ×½Ó×ÖÉϺô½Ð sendfile(2) ¿ÉÄܵ¼Ö sendfile(2) ºô½Ð×èÈûÖ±µ½ÓÐ×ã¹»µÄ struct sf_buf ¿ÉÓá£
net.inet.ip.portrange.*
¡¡¡¡net.inet.ip.portrange.*
sysctl ±äÁ¿×Ô¶¯µÄ¿ØÖưó¶¨ÔÚ
TCP ºÍ UDP Ì×½Ó×ÖÉϵĶ˿ڷ¶Î§¡£
ÕâÀïÓÐÈý¸ö·¶Î§£ºÒ»¸öµÍ¶Ë·¶Î§£¬Ò»¸öĬÈÏ·¶Î§ºÍÒ»¸ö¸ß¶Ë·¶Î§¡£ ´ó¶àÊýÍøÂç³ÌÐò·Ö±ðʹÓÃÓÉ
net.inet.ip.portrange.first
ºÍ net.inet.ip.portrange.last
¿ØÖÆµÄ´Ó 1024 µ½ 5000
µÄĬÈÏ·¶Î§¡£¶Ë¿Ú·¶Î§ÓÃ×÷¶ÔÍâÁ¬½Ó£¬²¢ÇÒijЩÇé¿ö¿ÉÄÜÓÃÍêϵͳµÄ¶Ë¿Ú£¬
Õâ¾³£·¢ÉúÔÚÔËÐÐÒ»¸ö¸ß¸ººÉ web ´úÀí·þÎñÆ÷µÄʱºò¡£ Õâ¸ö¶Ë¿Ú·¶Î§²»ÊÇÓÃÀ´ÏÞÖÆÖ÷ÒªµÄÀýÈç web
·þÎñÆ÷½øÈëÁ¬½Ó»òÕßÓй̶¨¶Ë¿ÚÀýÈçÓʼþ´«µÝ¶ÔÍâÁ¬½ÓµÄ¡£
ÓÐʱÄú¿ÉÄÜÓÃÍêÁ˶˿ڣ¬ÄǾͽ¨ÒéÊʵ±µÄÔö¼Ó net.inet.ip.portrange.last
¡£ 10000¡¢20000 »òÕß 30000 ¿ÉÄÜÊÇÊʵ±µÄÖµ¡£
¸ü¸Ä¶Ë¿Ú·¶Î§µÄʱºòÒ²Òª¿¼Âǵ½·À»ðǽ¡£ һЩ·À»ðǽ»á×èÖ¹¶Ë¿ÚµÄ´ó²¿·Ö·¶Î§
(ͨ³£Êǵͷ¶Î§µÄ¶Ë¿Ú)²¢ÇÒÓø߶˿ڽøÐжÔÍâÁ¬½Ó(©¤©¤)¡£ »ùÓÚÕâ¸öÎÊÌ⽨Òé²»Òª°Ñ net.inet.ip.portrange.first
ÉèµÄ̫С¡£
¡¡¡¡ÏÞÖÆ TCP ´ø¿íÑÓ³Ù»ýºÍ NetBSD µÄ TCP/Vegas ÀàËÆ¡£ Ëü¿ÉÒÔͨ¹ý½« sysctl ±äÁ¿
net.inet.tcp.inflight.enable
ÉèÖÃ³É 1 À´ÆôÓᣠϵͳ½«³¢ÊÔ¼ÆËãÿһ¸öÁ¬½ÓµÄ´ø¿íÑÓ³Ù»ý£¬
²¢½«ÅŶӵÄÊý¾ÝÁ¿ÏÞÖÆÔÚÇ¡ºÃÄܱ£³Ö×îÓÅÍÌÍÂÁ¿µÄˮƽÉÏ¡£
¡¡¡¡ÕâÒ»ÌØÐÔÔÚÄúµÄ·þÎñÆ÷ͬʱÏòʹÓÃÆÕͨµ÷ÖÆ½âµ÷Æ÷£¬ ǧÕ×ÒÔÌ«Íø£¬
ÄËÖÁ¸ü¸ßËٶȵĹâÓëÍøÂçÁ¬½Ó (»òÆäËû´ø¿íÑÓ³Ù»ýºÜ´óµÄÁ¬½Ó) µÄʱºòÓÈÎªÖØÒª£¬
ÌØ±ðÊǵ±ÄúͬʱʹÓû¬¶¯´°Ëõ·Å£¬ »òʹÓÃÁË´óµÄ·¢ËÍ´°¿ÚµÄʱºò¡£ Èç¹ûÆôÓÃÁËÕâ¸öÑ¡Ï
Äú»¹Ó¦¸Ã°Ñ net.inet.tcp.inflight.debug
ÉèÖÃΪ 0 (½ûÓõ÷ÊÔ)£¬ ¶ÔÓÚÉú²ú»·¾³¶øÑÔ£¬ ½« net.inet.tcp.inflight.min
ÉèÖóÉÖÁÉÙ 6144
»áºÜÓкô¦¡£ È»¶ø£¬ ÐèҪעÒâµÄÊÇ£¬
Õâ¸öÖµÉèÖùý´óÊÂʵÉÏÏ൱ÓÚ½ûÓÃÁËÁ¬½Ó´ø¿íÑÓ³Ù»ýÏÞÖÆ¹¦ÄÜ¡£
Õâ¸öÏÞÖÆÌØÐÔ¼õÉÙÁËÔÚ·Óɺͽ»»»°ü¶ÓÁеĶÂÈûÊý¾ÝÊýÁ¿£¬
Ò²¼õÉÙÁËÔÚ±¾µØÖ÷»ú½Ó¿Ú¶ÓÁÐ×èÈûµÄÊý¾ÝµÄÊýÁ¿¡£ÔÚÉÙÊýµÄµÈºò¶ÓÁÐÖС¢
½»»¥Ê½Á¬½Ó£¬ÓÈÆäÊÇͨ¹ýÂýËٵĵ÷ÖÆ½âµ÷Æ÷£¬Ò²ÄÜÓ̵굀 Íù·µÊ±¼ä²Ù×÷¡£µ«ÊÇ£¬×¢ÒâÕâÖ»Ó°Ïìµ½Êý¾Ý·¢ËÍ
(ÉÏÔØ/·þÎñ¶Ë)¡£¶ÔÊý¾Ý½ÓÊÕ(ÏÂÔØ)ûÓÐЧ¹û¡£
¡¡¡¡µ÷Õû net.inet.tcp.inflight.stab
ÊÇ ²» ÍÆ¼öµÄ¡£ Õâ¸ö²ÎÊýµÄĬÈÏÖµÊÇ 20£¬ ±íʾ°Ñ 2
¸ö×î´ó°ü¼ÓÈëµ½´ø¿íÑÓ³Ù»ý´°¿ÚµÄ¼ÆËãÖС£ ¶îÍâµÄ´°¿ÚËÆµÄËã·¨¸üΪÎȶ¨£¬
²¢¸ÄÉÆ¶ÔÓÚ¶à±äÍøÂç»·¾³µÄÏàÓ¦ÄÜÁ¦£¬ µ«Ò²»áµ¼ÖÂÂýËÙÁ¬½ÓÏ嵀 ping ʱ¼äÔö³¤
(¾¡¹Ü»¹ÊÇ»á±ÈûÓÐʹÓà inflight Ëã·¨µÍÐí¶à)¡£ ¶ÔÓÚÕâЩÇéÐΣ¬ Äú¿ÉÄÜ»áÏ£Íû°ÑÕâ¸ö²ÎÊý¼õÉÙµ½
15£¬ 10£¬ »ò 5£» ²¢¿ÉÄÜÒò´Ë¶ø²»µÃ²»¼õÉÙ net.inet.tcp.inflight.min
(±ÈÈç˵£¬ 3500) À´µÃµ½Ï£ÍûµÄЧ¹û¡£
¼õÉÙÕâЩ²ÎÊýµÄÖµ£¬ Ö»Ó¦×÷Ϊ×îºó²»µÃÒÑʱµÄÊÖ¶ÎÀ´Ê¹Óá£
kern.maxvnodes
¡¡¡¡vnode ÊǶÔÎļþ»òĿ¼µÄÒ»ÖÖÄÚ²¿±í´ï¡£ Òò´Ë£¬ Ôö¼Ó¿ÉÒÔ±»²Ù×÷ϵͳÀûÓÃµÄ vnode ÊýÁ¿½«½µµÍ´ÅÅÌµÄ I/O¡£ Ò»°ã¶øÑÔ£¬ ÕâÊÇÓɲÙ×÷ϵͳ×ÔÐÐÍê³ÉµÄ£¬ Ò²²»ÐèÒª¼ÓÒÔÐ޸ġ£ µ«ÔÚijЩʱºò´ÅÅÌ I/O »á³ÉΪƿ¾±£¬ ¶øÏµÍ³µÄ vnode ²»×㣬 ÔòÕâÒ»ÅäÖÃÓ¦±»Ôö¼Ó¡£ ´ËʱÐèÒª¿¼ÂÇÊÇ·Ç»îÔ¾ºÍ¿ÕÏÐÄÚ´æµÄÊýÁ¿¡£
¡¡¡¡Òª²é¿´µ±Ç°ÔÚÓÃµÄ vnode ÊýÁ¿£º
# sysctl vfs.numvnodes vfs.numvnodes: 91349
¡¡¡¡Òª²é¿´×î´ó¿ÉÓÃµÄ vnode ÊýÁ¿£º
# sysctl kern.maxvnodes kern.maxvnodes: 100000
¡¡¡¡Èç¹ûµ±Ç°µÄ vnode ÓÃÁ¿½Ó½ü×î´óÖµ£¬ Ôò½« kern.maxvnodes
ÖµÔö´ó 1,000 ¿ÉÄÜÊǸöºÃÖ÷Òâ¡£ ÄúÓ¦¼ÌÐø²é¿´ vfs.numvnodes
µÄÊýÖµ£¬ Èç¹ûËüÔÙ´ÎÅÊÉýµ½½Ó½ü×î´óÖµµÄ³Ì¶È£¬ ÈÔÐè¼ÌÐøÌá¸ß kern.maxvnodes
¡£ ÔÚ top(1)
ÖÐÏÔʾµÄÄÚ´æÓÃÁ¿Ó¦ÓÐÏÔÖø±ä»¯£¬ ¸ü¶àÄÚ´æ»á´¦ÓÚ»îÔ¾ (active) ״̬¡£
[1] |
×Ô¶¯µ÷ÕûËã·¨»á½« maxusers ÉèÖÃΪÓëÖ÷´æµÄÊýÁ¿Ò»Ñù£¬ »òÕßÈ¡ÆäÏÂÏÞ 32 »òÉÏÏÞ 384¡£ |
±¾ÎĵµºÍÆäËüÎĵµ¿É´ÓÕâÀïÏÂÔØ£ºftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
Èç¹û¶ÔÓÚFreeBSDÓÐÎÊÌ⣬ÇëÏÈÔĶÁÎĵµ£¬Èç²»Äܽâ¾öÔÙÁªÏµ<questions@FreeBSD.org>.
¹ØÓÚ±¾ÎĵµµÄÎÊÌâÇë·¢ÐÅÁªÏµ <doc@FreeBSD.org>.