linuxÄÚ´æ¹ÜÀíÖ®·ÇÁ¬ÐøÎïÀíµØÖ··ÖÅä(vmalloc
Ç°ÃæÎÒÃÇÒѾ·ÖÎöÁËlinuxÈçºÎÀûÓûï°éϵͳ,slab·ÖÅäÆ÷·ÖÅäÄÚ´æ,ÓÃÕâЩ·½·¨µÃµ½µÄÄÚ´æÔÚÎïÀíµØÖ·É϶¼ÊÇÁ¬ÐøµÄ,È»¶ø,ÓÐЩʱºò,ÿ´ÎÇëÇóÄÚ´æÊ±,ϵͳ¶¼·ÖÅäÎïÀíµØÖ·Á¬ÐøµÄÄÚ´æ¿éÊDz»ºÏÊʵÄ,¿ÉÒÔÀûÓÃС¿éÄÚ´æ“Á¬½Ó”³É´ó¿é¿ÉʹÓõÄÄÚ´æ.ÕâÔÚ²Ù×÷ϵͳÉè¼ÆÖÐÒ²±»³ÆÎª “ÄÚ´æÆ´½Ó”,ÏÔÈ»,ÄÚ´æÆ´½ÓÔÚÐèÒª½Ï´óÄÚ´æ,¶øÄÚ´æ·ÃÎÊÏà±È֮ϲ»ÊÇºÜÆµ·±µÄÇé¿öÏÂÊDZȽÏÓÐЧµÄ.
¡¡¡¡ÔÚlinuxÄÚºËÖÐÓÃÀ´¹ÜÀíÄÚ´æÆ´½ÓµÄ½Ó¿ÚÊÇvmalloc/vfree.ÓÃvmalloc·ÖÅäµÃµ½µÄÄÚ´æÔÚÏßÐÔµØÖ·ÊÇÆ½»¬µÄ,µ«ÊÇÎïÀíµØÖ·ÉÏÊÇ·ÇÁ¬ÐøµÄ.
¡¡¡¡Ò»:×¼±¸ÖªÊ¶:
¡¡¡¡LinuxÓÃvm_struct½á¹¹À´±íʾvmallocʹÓõÄÏßÐÔµØÖ·.vmallocËùʹÓõÄÏßÐÔµØÖ·Çø¼äΪ: VMALLOC_START VMALLOC_END.½èÓÃ<<Understanding.the.Linux.Kernel.3rd>>ÖеÄÒ»¸±²åͼ,ÈçÏÂʾ:
¡¡¡¡´ÓÉÏͼÖÐÎÒÃÇ¿ÉÒÔ¿´µ½Ã¿Ò»¸övmalloc_areaÓÃ4KB¸ô¿ª,ÕâÑù×öÊÇΪÁ˺ÜÈÝÒ×¾ÍÄܲ¶×½µ½Ô½½ç·ÃÎÊ,ÒòΪÖмäÊÇÒ»¸ö “¿Õ¶´”.
¡¡¡¡¶þ:Ïà¹ØµÄÊý¾Ý½á¹¹
¡¡¡¡ÏÂÃæÀ´·ÖÎöÒ»ÏÂvmalloc areaµÄÊý¾Ý½á¹¹:
¡¡¡¡struct vm_struct {
¡¡¡¡void *addr; //ÐéÄâµØÖ·
¡¡¡¡unsigned long size; //vmµÄ´óС
¡¡¡¡unsigned long flags; //vmµÄ±êÖ¾
¡¡¡¡struct page **pages; //vmËùÓ³ÉäµÄpage
¡¡¡¡unsigned int nr_pages; //page¸öÊý
¡¡¡¡unsigned long phys_addr; //¶ÔÓ¦µÄÆðʼÎïÀíµØÖ·
¡¡¡¡struct vm_struct *next; //ÏÂÒ»¸övm.ÓÃÀ´ÐγÉÁ´±í
¡¡¡¡}
¡¡¡¡È«¾Ö±äÁ¿vmlistÓÃÀ´¹ÜÀívm¹¹³ÉµÄÁ´±í
¡¡¡¡È«¾Ö±äÁ¿vmlistÓÃÓÚ·ÃÎÊvmlistËùʹÓõÄÐźÅÁ¿
¡¡¡¡¶ÔÓÚvm_structÓÐÁ½¸ö³£ÓõIJÙ×÷: get_vm_area/remove_vm_area
¡¡¡¡get_vm_area:ÓÃÀ´·ÖÅäÒ»¸öºÏÊÊ´óСµÄvm½á¹¹,·ÖÅä³É¹¦Ö®ºó,½«ÆäÁ´Èëµ½vmlistÖÐ,´úÂëÔÚ mm/vmalloc.cÖÐ.ÈçÏÂʾ:
¡¡¡¡//sizeΪvmµÄ´óС
¡¡¡¡struct vm_struc
Ïà¹ØÎĵµ£º
### Section 1: Global Environment
//µ±·þÎñÆ÷ÏìÓ¦Ö÷»úÍ·£¨header£©ÐÅϢʱÏÔʾApacheµÄ°æ±¾ºÍ²Ù×÷ϵͳÃû³Æ
ServerTokens OS
//ÉèÖ÷þÎñÆ÷µÄ¸ùĿ¼
ServerRoot "/etc/httpd"
#ScoreBoardFile run/httpd.scoreboard
//ÉèÖÃÔËÐÐApacheʱʹÓõÄPidFileµÄ·¾¶
PidFile run/httpd.pid
//Èô300ÃëºóûÓÐÊÕµ½»òËͳöÈκÎÊ ......
×î½üÏëÔÚ·þÎñÆ÷ÉÏÊÔÊÔMySQL5.1µÄ·ÖÇø£¬ÓÚÊǾÍÏë×Å×°¸öMySQL5.1£¬¾¹ýÍ´¿àµÄÒ»¶Î¾Àúºó£¬ÖÕÓÚÕÒ¸öÏÂÃæ×°¸öºÜºÃµÄ½Ì³Ì£¬ÌûÉÏÀ´±¸Íü¡£
1¡¢MySQLÃâ°²×°°æ/¶þ½øÖưæÈí¼þ£¬²»ÓñàÒ룬ÏÂÔØµØÖ·£º
http://dev.mysql.com/downloads/
Îļþ¸ñʽ£ºMYSQL-VERSION-OS.tar.gz
2¡¢´ ......
¡¾IT168 ·þÎñÆ÷
ѧԺ
¡¿
LinuxÊÇÒ»¸ö¶àÓû§µÄ²Ù×÷ϵͳ
£¬ËýÓÐÍêÃÀµÄÓû§¹ÜÀí¹¤¾ß£¬ÕâЩ¹¤¾ß°üÀ¨Óû§µÄ²éѯ¡¢Ìí¼Ó¡¢Ð޸ģ¬ÒÔ¼°Óû§Ö®¼äÏ໥Çл»µÄ¹¤¾ßµÈ£»Í¨¹ýÕâЩ¹¤¾ß£¬ÎÒÃÇÄܰ²È«
¡¢ÇáËɵÄÍê³ÉÓû§¹ÜÀí£»
ÔÚÕâÀïÎÒÃÇÒªÒýÈëÓû§¿ØÖƹ¤¾ßµÄ¸ÅÄ±ÈÈç¶ÔÓû§Ìí¼ÓµÄuseradd»òadduser £¬¶ÔÓû§ ......
Tuning TCP for Linux 2.4 and 2.6
NB: Recent versions of Linux (version 2.6.17 and later) have full autotuning with 4 MB maximum buffer sizes. Except in some rare cases, manual tuning is unlikely to substantially improve the performance of these kernels over most network paths, and is not generally ......
1. Linux ½Å±¾±àд»ù´¡
1.1 Óï·¨»ù±¾½éÉÜ
1.1.1 ¿ªÍ·
³ÌÐò±ØÐëÒÔÏÂÃæµÄÐпªÊ¼£¨±ØÐë·½ÔÚÎļþµÄµÚÒ»ÐУ©£º
#!/bin/sh
¡¡¡¡·ûºÅ#!ÓÃÀ´¸æËßϵͳËüºóÃæµÄ²ÎÊýÊÇÓÃÀ´Ö´ÐиÃÎļþµÄ³ÌÐò¡£ÔÚÕâ¸öÀý×ÓÖÐÎÒÃÇʹÓÃ/bin/shÀ´Ö´ÐгÌÐò¡£
¡¡¡¡µ±±à¼ºÃ½Å±¾Ê±£¬Èç¹ûÒªÖ´Ðиýű¾£¬»¹±ØÐëʹÆä¿ÉÖ´ÐС£
¡¡¡¡ÒªÊ¹½Å±¾¿ÉÖ´ÐУº
±àÒ ......