LinuxÔö¼Óswap¿Õ¼ä
½ñÌìºöÈ»·¢ÏÖ´úÀí·þÎñÆ÷²»ÄÜʹÓÃÁË£¬ÉÏÈ¥Ò»¿´£¬squidµÄ¶Ë¿Ú¼àÌýStopµôÁË£¬²é¿´ÈÕÖ¾£¬ÈçÏ´íÎó ¡¡¡¡½ñÌìºöÈ»·¢ÏÖ´úÀí·þÎñÆ÷²»ÄÜʹÓÃÁË£¬ÉÏÈ¥Ò»¿´£¬squidµÄ¶Ë¿Ú¼àÌýStopµôÁË£¬²é¿´ÈÕÖ¾£¬ÈçÏ´íÎó
¡¡¡¡localhost kernel: Out of Memory: Killed process 785 (squid).
¡¡¡¡ÍøÉÏgoogleһͨ£¬Ã»ÓÐÈκÎÓмÛÖµµÄ½á¹û£¬×Ô¼ºÕÒÆäËûÔÒò¿´¿´°É£¬linuxµÄswap¶¼ÓÃÍêÁËô£¬¾ÓÈ»»¹ÄÚ´æ²»¹»£¬topһϣ¬ÏÅÒ»Ìø£¬¾ÓȻֻÓÐ8M swap¿Õ¼ä£¬¹À¼Æµ±Ê±×Ô¼º²»Ð¡ÐÄ·Ö´íÁËÁ˰É!
¡¡¡¡Ôö¼Óswap·ÖÇøÊDz»¿ÉÄÜÁË£¬´ÅÅ̿ռäÔç¾Í·ÖÅäÍêÁË£¬ÄǾÍÔö¼ÓswapÎļþ°É
¡¡¡¡Éú³É1200MµÄÎļþ
¡¡¡¡# dd if=/dev/zero of=swapfile bs=1024 count=1317000
¡¡¡¡´´½¨ÎªswapÎļþ
¡¡¡¡#mkswap swapfile
¡¡¡¡ÈÃswapÉúЧ
¡¡¡¡#swapon swapfile
¡¡¡¡²é¿´Ò»ÏÂswap
¡¡¡¡#swapon -s
¡¡¡¡Filename Type Size Used Priority
¡¡¡¡/dev/sda3 partition 8024 2504 -3
¡¡¡¡/var/swapfile file 1316992 0 -4
¡¡¡¡¼Óµ½fstabÎļþÖÐÈÃϵͳÒýµ¼Ê±×Ô¶¯Æô¶¯
¡¡¡¡#vi /etc/fstab
¡¡¡¡/var/swapfile swap swap defaults 0 0
¡¡¡¡È»ºóÆô¶¯squid,ÓÃtopÃüÁî¿´¿´
¡¡¡¡Swap: 1325016K av, 2504K used, 1322512K free
¡¡¡¡#netstat -ln
¡¡¡¡tcp 0 0 202.xxx.xxx.xxx:3128 0.0.0.0:* LISTEN
¡¡¡¡´ó¹¦¸æ³É!
¡¡¡¡¹ý³ÌºÜ¼òµ¥°É£¬²»¹ý×Ô¼ºµ±Ê±°²×°ÏµÍ³Ê±¾ÓÈ»·¸Õâô´ó´íÎó¡£
Ïà¹ØÎĵµ£º
¼¸µã×¢Ò⣺
1.дʱ¸´ÖƼ¼ÊõÔÊÐí¸¸×Ó½ø³Ì¶ÁÏàͬµÄÎïÀíÒ³¡£Ö»ÒªÁ½ÕßÖÐÓÐÒ»¸öÊÔͼдһ¸öÎïÀíÒ³£¬Äں˾ͰÑÕâ¸öÒ³µÄÄÚÈÝ¿½±´µ½Ò»¸öеÄÎïÀíÒ³£¬²¢°ÑÕâ¸öеÄÎïÀíÒ³·ÖÅ䏸ÕýÔÚдµÄ½ø³Ì¡£
2.ÇáÁ¿¼¶½ø³ÌÔÊÐí¸¸×Ó½ø³Ì¹²Ïíÿ½ø³ÌÔÚÄں˵ĺܶàÊý¾Ý½á¹¹¡£
3.vfork()ϵͳµ÷Óô´½¨µÄ½ø³ÌÄܹ²ÏíÆä¸¸½ø³ÌµÄÄÚ´æµØÖ·¿Õ¼ä¡£ÎªÁË·ÀÖ¹¸¸½ø³ÌÖ ......
*ɱËÀ½ø³Ì×ȫµÄ·½·¨Êǵ¥´¿Ê¹ÓÃkillÃüÁ²»¼ÓÐÞÊηû£¬²»´ø±êÖ¾¡£
Ê×ÏÈʹÓÃps -efÃüÁîÈ·¶¨ÒªÉ±ËÀ½ø³ÌµÄPID£¬È»ºóÊäÈëÒÔÏÂÃüÁ
# kill -pid
×¢ÊÍ£º±ê×¼µÄkillÃüÁîͨ³£¶¼ÄܴﵽĿµÄ¡£ÖÕÖ¹ÓÐÎÊÌâµÄ½ø³Ì£¬²¢°Ñ½ø³ÌµÄ×ÊÔ´ÊͷŸøÏµÍ³¡£È»¶ø£¬Èç¹û½ø³ÌÆô¶¯ÁË×Ó½ø³Ì£¬Ö»É±ËÀ¸¸½ø³Ì£¬×Ó½ø³ÌÈÔÔÚÔËÐУ ......
linux½ø³Ìµ÷¶È·½·¨(SCHED_OTHER,SCHED_FIFO,SCHED_RR)
linuxÄں˵ÄÈýÖÖµ÷¶È·½·¨£º
1£¬SCHED_OTHER ·Öʱµ÷¶È²ßÂÔ£¬
2£¬SCHED_FIFOʵʱµ÷¶È²ßÂÔ£¬Ïȵ½ÏÈ·þÎñ
3£¬SCHED_RRʵʱµ÷¶È²ßÂÔ£¬Ê±¼äƬÂÖת
linuxÄں˵ÄÈýÖÖµ÷¶È·½·¨£º
1£¬SCHED_OTHER ·Öʱµ÷¶È²ßÂÔ£¬
2£¬SCHED_FIFOʵʱµ÷¶È²ßÂÔ£¬Ïȵ½ÏÈ·þÎñ
3£¬SCHED_RRʵʱ ......
Ϻ¯Êý£¬´´½¨½ø³ÌÃèÊö·ûÒÔ¼°×Ó½ø³ÌÖ´ÐÐËùÐèÒªµÄËùÓÐÆäËûÊý¾Ý½á¹¹¡£²ÎÊýÓëdo_fork()µÄ²ÎÊýÏàͬ£¬Íâ¼Ó×Ó½ø³ÌµÄpid¡£
static task_t *copy_process(unsigned long clone_flags,unsigned long stack_start,struct pt_regs *regs,unsigned long stack_size,int __user *parent_tidptr,int __user *child_tidptr,int pid)
{
&n ......