LINUXµ÷ÓÅ·½·¨×ܽá
LINUXµ÷ÓÅ·½·¨×ܽá
----------------------------------------------------------------------------------------------------------------------------
´ó¶àÊý Linux ·¢²¼°æ¶¼¶¨ÒåÁËÊʵ±µÄ»º³åÇøºÍÆäËû Transmission Control Protocol£¨TCP£©²ÎÊý¡£¿ÉÒÔÐÞ¸ÄÕâЩ²ÎÊýÀ´·ÖÅä¸ü¶àµÄÄڴ棬´Ó¶ø¸Ä½øÍøÂçÐÔÄÜ¡£ÉèÖÃÄں˲ÎÊýµÄ·½·¨ÊÇͨ¹ý proc ½Ó¿Ú£¬Ò²¾ÍÊÇͨ¹ý¶Áд /proc ÖеÄÖµ¡£ÐÒÔ˵ÄÊÇ£¬sysctl ¿ÉÒÔ¶ÁÈ¡ /etc/sysctl.conf ÖеÄÖµ²¢¸ù¾ÝÐèÒªÌî³ä /proc£¬ÕâÑù¾ÍÄܹ»¸üÇáËɵعÜÀíÕâЩ²ÎÊý¡£Çåµ¥ 2 չʾÔÚ»¥ÁªÍø·þÎñÆ÷ÉÏÓ¦ÓÃÓÚ Internet ·þÎñÆ÷µÄһЩ±È½Ï¼¤½øµÄÍøÂçÉèÖá£
# Use TCP syncookies when needed
net.ipv4.tcp_syncookies = 1
# Enable TCP window scaling
net.ipv4.tcp_window_scaling: = 1
# Increase TCP max buffer size
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
# Increase Linux autotuning TCP buffer limits
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
# Increase number of ports available
net.ipv4.ip_local_port_range = 1024 65000
½«ÕâЩÉèÖÃÌí¼Óµ½ /etc/sysctl.conf µÄÏÖÓÐÄÚÈÝÖС£µÚÒ»¸öÉèÖÃÆôÓà TCP SYN cookie¡£µ±´Ó¿Í»§»ú·¢À´Ð嵀 TCP Á¬½Óʱ£¬Êý¾Ý°üÉèÖÃÁË SYN 룬·þÎñÆ÷¾ÍΪÕâ¸ö°ë¿ªµÄÁ¬½Ó´´½¨Ò»¸öÌõÄ¿£¬²¢ÓÃÒ»¸ö SYN-ACK Êý¾Ý°ü½øÐÐÏìÓ¦¡£ÔÚÕý³£²Ù×÷ÖУ¬Ô¶³Ì¿Í»§»úÓÃÒ»¸ö ACK Êý¾Ý°ü½øÐÐÏìÓ¦£¬Õâ»áʹ°ë¿ªµÄÁ¬½Óת»»ÎªÈ«¿ªµÄ¡£ÓÐÒ»ÖÖ³ÆÎª SYN ·ºÀÄ£¨SYN flood£© µÄÍøÂç¹¥»÷£¬Ëüʹ ACK Êý¾Ý°üÎÞ·¨·µ»Ø£¬µ¼Ö·þÎñÆ÷ÓùâÄÚ´æ¿Õ¼ä£¬ÎÞ·¨´¦Àíµ½À´µÄÁ¬½Ó¡£SYN cookie ÌØÐÔ¿ÉÒÔʶ±ð³öÕâÖÖÇé¿ö£¬²¢Ê¹ÓÃÒ»ÖÖÓÅÑŵķ½·¨±£Áô¶ÓÁÐÖеĿռ䣨ϸ½Ú²Î¼û ²Î¿¼×ÊÁÏ Ò»½Ú£©¡£´ó¶àÊýϵͳ¶¼Ä¬ÈÏÆôÓÃÕâ¸öÌØÐÔ£¬µ«ÊÇÈ·±£ÅäÖÃÕâ¸öÌØÐÔ¸ü¿É¿¿¡£
ÆôÓà TCP ´°¿ÚÉìËõʹ¿Í»§»úÄܹ»ÒÔ¸ü¸ßµÄËÙ¶ÈÏÂÔØÊý¾Ý¡£TCP ÔÊÐíÔÚδ´ÓÔ¶³Ì¶ËÊÕµ½È·ÈϵÄÇé¿öÏ·¢ËͶà¸öÊý¾Ý°ü£¬Ä¬ÈÏÉèÖÃÊÇ×î¶à 64 KB£¬ÔÚÓëÑӳٱȽϴóµÄÔ¶³Ì¿Í»§»ú½øÐÐͨÐÅʱÕâ¸öÉèÖÿÉÄܲ»¹»¡£´°¿ÚÉìËõ»áÔÚÍ·ÖÐÆôÓøü¶àµÄ룬´Ó¶øÔö¼Ó´°¿Ú´óС¡£
ºóÃæËĸöÅäÖÃÏîÔö¼Ó TCP ·¢ËͺͽÓÊÕ»º³åÇø¡£ÕâʹӦÓóÌÐò¿ÉÒÔ¸ü¿ìµØ¶ªµôËüµÄÊý¾Ý£¬´Ó¶øÎªÁíÒ»¸öÇëÇó·þÎñ¡£»¹¿ÉÒÔÇ¿»¯Ô¶³Ì¿Í»§»úÔÚ·þÎñÆ÷·±Ã¦Ê±·¢ËÍÊý¾ÝµÄÄÜÁ¦¡£
×îºóÒ»¸öÅäÖÃÏîÔö¼Ó¿ÉÓõı¾µØ¶Ë¿ÚÊýÁ¿£¬ÕâÑù¾ÍÔö¼ÓÁË¿ÉÒÔͬʱ·þÎñµÄ×î´óÁ¬½ÓÊýÁ¿¡£
ÔÚÏÂÒ»´ÎÒýµ¼ÏµÍ³Ê
Ïà¹ØÎĵµ£º
¼ÇµÃÎÒÃÇÔÚÉÏÆªÎÄÕÂmem_init()·ÖÎöÖÐÌáµ½__free_page()º¯ÊýÂð£¿ÎÒÃÇÏÖÔÚÀ´ÍêÉÆËü¡£ËüµÄµ÷Óùý³ÌÊÇÕâÑùµÄ£ºmem_init()->free_all_bootmem_node():ÎÒÃÇÖªµÀÕâ¸öº¯ÊýÊÇͳ¼ÆÒ»¹²ÊÍ·ÅÁ˶àÉÙ¿ÕÏÐÒ³¡£->free_all_bootmem_core()¾ÍÊÇÔÚÕâ¸öº¯ÊýÀïÃæÏȺó¶à´Îµ÷ÓÃ__free_pages()º¯Êý¡£Ä¿µÄ¾ÍÊÇΪÁËÊÍ·Åÿ¸öÄÚ´ænodeÀïÃæÎ ......
¡¡apache·þÎñÆ÷µÄ×îÐÂÎȶ¨·¢²¼°æ±¾ÊÇhttpd-2.2..0,¹Ù·½ÏÂÔØµØÖ·ÊÇ£ºhttp://httpd.apache.org/download.cgi¡£ÎÒÃÇͨ¹ýÏÂÃæµÄ²½ÖèÀ´¿ìËٵĴһ¸öweb·þÎñÆ÷¡£
¡¡¡¡1¡¢ ÏÂÔØÔ´ÂëÎļþhttpd-2.2.0.tar.gz µ½linux·þÎñÆ÷µÄij¸öĿ¼¡£
¡¡¡¡2¡¢ ½âѹÎļþ # tar zxvf httpd-2.2.0.tar.gz .
¡¡¡¡3¡¢ ÅäÖÃ # ./c ╟refix=/usr ......
0.Introduction
һ˵Æð²Ù×÷ϵͳ, ÎÒÃǵÄÄÔº£ÂíÉϾͻáÉÁ³öWindows, ¾Ý˵WindowsÒѾ±»°²×°µ½ÁË1.5ÒŲ́¼ÆËã»úÉÏ.
È»¶øÔÚÕâÀïÎÒ»¹ÒªÌáµ½ÁíÒ»ÖÖ²Ù×÷ϵͳ, ¾Ý¹À¼ÆÕâÖÖÀàÐ͵IJÙ×÷ϵͳÒѾ±»°²×°µ½ÁËÈ«Çò30ÒÚµ½40ÒŲ́¼ÒÓõç×Ó²úÆ·ÖÐ.
Èç¹ûÆÕ¼°³Ì¶È°´ÕÕ»úÆ÷ÊýÁ¿À´¼ÆµÄ»°, ËüµÄÆÕ¼°³Ì¶È¾¹È»ÊÇWindowsµÄÊýÊ®±¶. Õâ¿î²Ù×÷ϵͳ½Ð×öTR ......
ÏîÄ¿Öг£Óöµ½ÐèÒª¶ÔĿǰÔËÐеÄϵͳ½øÐÐЧÂÊ·ÖÎö£¬»òÅöµ½¿Í»§×ÉѯÈçºÎÓÅ»¯ÏµÍ³µÄЧÂÊÎÊÌâ¡£¸ü¶àµÄÇé¿öÊÇ£¬ÔÚϵͳ³öÏÖÎÊÌâµÄʱºò£¬ÐèÒª·ÖÎöÔÒò£¬¶¨Î»ÏµÍ³¹ÊÕÏ»òÆ¿¾±£¬µ±È»£¬×îºÃÊÇ¿ÉÒÔÒ»²¢½â¾ö¹ÊÕÏ¡£µ«Êµ¼ÊÉÏ£¬²Ù×÷ϵͳÓÅ»¯ÊÇÒ»¸ö·Ç³£¸´ÔÓµÄÎÊÌ⣬¿öÇÒlinuxÓÐ×Ô¼ºÒ»Ì×ÓбðÓÚÆäËû²Ù×÷ϵͳ¹ÜÀíµÄ»úÖÆ£¬ÓÉ´Ë»áÒýÆðºÜ¶à²»±ØÒªµÄÎ ......
¸Å¶øÑÔÖ®£¬virtio
ÊǰëÐéÄ⻯ hypervisor ÖÐλÓÚÉ豸֮ÉϵijéÏó²ã¡£virtio
ÓÉ Rusty Russell ¿ª·¢£¬Ëûµ±Ê±µÄÄ¿µÄÊÇÖ§³Ö×Ô¼ºµÄÐéÄ⻯½â¾ö·½°¸ lguest
¡£±¾ÎÄÔÚ¿ªÆªÊ±½éÉܰëÐéÄ⻯ºÍÄ£ÄâÉ豸£¬È»ºó̽Ë÷ virtio
µÄϸ½Ú¡£±¾ÎĵÄÖØµãÊÇÀ´×Ô 2.6.30 Äں˷¢ÐаæµÄ virtio
¿ò¼Ü¡£
Linux ÊÇ hypervisor չ̨¡£ÈçÎÒµÄ ÆÊÎö ......