ÔõÑù¾ÙÐÐLinuxϵͳµÄÄÚ´æÖÎÀíºÍÐÔÄܵ÷ÓÅ
ÔõÑù¾ÙÐÐLinuxϵͳµÄÄÚ´æÖÎÀíºÍÐÔÄܵ÷ÓÅ
Ëæ×ÅÅÌËã»úÊÖÒÕµÄÒ»Ö±Éú³¤£¬Linux²Ù×÷ϵͳÔÚЧÀÍÆ÷ÁìÓòµÄÓ¦ÓÃÔ½À´Ô½Æձ顣¶øÔÚLinuxϵͳÖУ¬ÄÚ´æÖÎÀíºÍÐÔÄܵ÷ÓÅÊÇ°ü¹ÜϵͳÕý³£ÔËÐк͸ßЧÊÂÇéµÄÖ÷Òª»·½Ú¡£±¾ÎĽ«ÏÈÈÝÔõÑù¾ÙÐÐLinuxϵͳµÄÄÚ´æÖÎÀíºÍÐÔÄܵ÷ÓÅ£¬²¢ÌṩÏêϸµÄ´úÂëʾÀý¡£
Ò»¡¢LinuxϵͳµÄÄÚ´æÖÎÀí
ÔÚLinuxϵͳÖУ¬ÄÚ´æÖÎÀíÊDzÙ×÷ϵͳµÄ½¹µã¹¦Ð§Ö®Ò»¡£ËüÖ÷Òª°üÀ¨ÄÚ´æ·ÖÅÉ¡¢ÄÚ´æ½ÓÄɺÍÄÚ´æʹÓÃÇéÐμà¿ØµÈ·½Ãæ¡£ÏÂÃæÒÔÏêϸ´úÂëʾÀýµÄÐÎʽÏÈÈÝһЩ³£¼ûµÄÄÚ´æÖÎÀí²Ù×÷¡£
ÄÚ´æ·ÖÅÉ
ÄÚ´æ·ÖÅÉÊÇÖ¸²Ù×÷ϵͳ½«ÎïÀíÄÚ´æ·ÖÅɸøÓ¦ÓóÌÐòʹÓá£LinuxϵͳÌṩÁ˶àÖÖÄÚ´æ·ÖÅɺ¯Êý£¬Èçmalloc()¡¢calloc()¡¢realloc()µÈ¡£ÏÂÃæÊÇÒ»¸öʾÀý£¬Õ¹Ê¾ÁËÔõÑùʹÓÃmalloc()º¯ÊýÀ´·ÖÅÉÒ»¿éÄڴ棺
#include <stdio.h> #include <stdlib.h> int main() { int size = 100; int *ptr = malloc(sizeof(int) * size); if(ptr == NULL) { printf("ÄÚ´æ·ÖÅÉʧ°Ü£¡ "); return -1; } printf("ÄÚ´æ·ÖÅÉÀֳɣ¡ "); // ʹÓÃptr¾ÙÐÐÄÚ´æ²Ù×÷ free(ptr); // ÊÍ·ÅÄÚ´æ return 0; }
µÇ¼ºó¸´ÖÆ
ÄÚ´æ½ÓÄÉ
ÄÚ´æ½ÓÄÉÊÇÖ¸²Ù×÷ϵͳ½«²»ÔÙÐèÒªµÄÄÚ´æÊÍ·Å£¬ÒÔ±ãÔٴηÖÅɸøÆäËûÓ¦ÓóÌÐòʹÓá£ÔÚLinuxϵͳÖУ¬Ê¹ÓÃfree()º¯ÊýÀ´½ÓÄÉÄÚ´æ¡£ÏÂÃæÊÇÒ»¸öʾÀý£¬Õ¹Ê¾ÁËÔõÑùʹÓÃfree()º¯ÊýÊÍ·Å֮ǰ·ÖÅɵÄÄڴ棺
#include <stdio.h> #include <stdlib.h> int main() { int size = 100; int *ptr = malloc(sizeof(int) * size); if(ptr == NULL) { printf("ÄÚ´æ·ÖÅÉʧ°Ü£¡ "); return -1; } printf("ÄÚ´æ·ÖÅÉÀֳɣ¡ "); // ʹÓÃptr¾ÙÐÐÄÚ´æ²Ù×÷ free(ptr); // ÊÍ·ÅÄÚ´æ printf("ÄÚ´æÊÍ·ÅÀֳɣ¡ "); return 0; }
µÇ¼ºó¸´ÖÆ
ÄÚ´æʹÓÃÇéÐμà¿Ø
ÄÚ´æʹÓÃÇéÐμà¿ØÊÇָʵʱ¼à¿ØϵͳÖеÄÄÚ´æʹÓÃÇéÐΣ¬ÒÔ±ãʵʱµ÷½âÄÚ´æ·ÖÅÉÕ½ÂÔ¡£ÔÚLinuxϵͳÖУ¬¿ÉÒÔʹÓÃÏÂÁîÐй¤¾ßtop»òÕßͨ¹ý/procÎļþϵͳÀ´¼à¿ØÄÚ´æʹÓÃÇéÐΡ£ÏÂÃæÊÇÒ»¸öʾÀý£¬Õ¹Ê¾ÁËÔõÑùͨ¹ý/procÎļþϵͳ¶ÁÈ¡ÄÚ´æʹÓÃÇéÐΣº
#include <stdio.h> int main() { FILE *file = fopen("/proc/meminfo", "r"); if(file == NULL) { printf("·¿ª/proc/meminfoÎļþʧ°Ü£¡ "); return -1; } char line[100]; // ÖðÐжÁÈ¡ÎļþÄÚÈÝ while(fgets(line, sizeof(line), file)) { printf("%s", line); // Êä³öÿһÐÐÄÚÈÝ } fclose(file); return 0; }
µÇ¼ºó¸´ÖÆ
¶þ¡¢LinuxϵͳµÄÐÔÄܵ÷ÓÅ
ÔÚLinuxϵͳÖУ¬ÐÔÄܵ÷ÓÅÊÇΪÁËÌá¸ßϵͳµÄÏìÓ¦ËÙÂʺʹ¦ÀíÄÜÁ¦£¬ÒÔ±ã¸üºÃµØÖª×ãÓ¦ÓÃÐèÇó¡£ÏÂÃæÒÔÏêϸ´úÂëʾÀýµÄÐÎʽÏÈÈÝһЩ³£¼ûµÄÐÔÄܵ÷ÓŲÙ×÷¡£
ÓÅ»¯Îļþϵͳ
ÎļþϵͳµÄÐÔÄܹØÓÚϵͳµÄÕûÌåÐÔÄܾßÓÐÖ÷ÒªÓ°Ïì¡£LinuxϵͳÌṩÁËһЩ²ÎÊý¿É¹©µ÷ÓÅ£¬ÈçÎļþϵͳµÄ¶Áд»º´æºÍÈÕÖ¾·½·¨µÈ¡£ÏÂÃæÊÇÒ»¸öʾÀý£¬Õ¹Ê¾ÁËÔõÑùʹÓÃtune2fsÏÂÁîµ÷½âÎļþϵͳµÄ²ÎÊý£º
# µ÷½âÎļþϵͳµÄ¶Áд»º´æ tune2fs -o journal_data_writeback /dev/sda1 # µ÷½âÎļþϵͳµÄÈÕÖ¾·½·¨ tune2fs -o journal_dev /dev/sda1
µÇ¼ºó¸´ÖÆ
ÓÅ»¯ÍøÂçÉèÖÃ
ÍøÂçÉèÖùØÓÚϵͳµÄÐÔÄÜÒ²ÓкܴóÓ°Ïì¡£LinuxϵͳÌṩÁËһЩ²ÎÊý¿É¹©µ÷ÓÅ£¬ÈçÍø¿¨µÄÎüÊÕ»º³åÇø¾ÞϸºÍ·¢ËÍÐÐÁоÞϸµÈ¡£ÏÂÃæÊÇÒ»¸öʾÀý£¬Õ¹Ê¾ÁËÔõÑùʹÓÃifconfigÏÂÁîµ÷½âÍø¿¨µÄÎüÊÕ»º³åÇø´óС£º
# µ÷½âÍø¿¨µÄÎüÊÕ»º³åÇø¾Þϸ ifconfig eth0 rxqueuelen 1000
µÇ¼ºó¸´ÖÆ
ÓÅ»¯Àú³Ìµ÷Àí
Àú³Ìµ÷Àí¹ØÓÚϵͳµÄÐÔÄܺÍÏìÓ¦ËÙÂÊÖÁ¹ØÖ÷Òª¡£LinuxϵͳÌṩÁËһЩ²ÎÊý¿É¹©µ÷ÓÅ£¬ÈçÀú³ÌµÄÓÅÏȼ¶ºÍµ÷ÀíÕ½ÂԵȡ£ÏÂÃæÊÇÒ»¸öʾÀý£¬Õ¹Ê¾ÁËÔõÑùʹÓÃniceÏÂÁîµ÷½âÀú³ÌµÄÓÅÏȼ¶£º
# µ÷½âÀú³ÌµÄÓÅÏȼ¶ nice -n -10 ./program
µÇ¼ºó¸´ÖÆ
×ܽ᣺
±¾ÎÄÏÈÈÝÁËÔõÑù¾ÙÐÐLinuxϵͳµÄÄÚ´æÖÎÀíºÍÐÔÄܵ÷ÓÅ£¬²¢ÌṩÁËÏêϸµÄ´úÂëʾÀý¡£Í¨¹ýºÏÀíµÄÄÚ´æÖÎÀíºÍÊʵ±µÄÐÔÄܵ÷ÓÅ£¬¿ÉÒÔÌá¸ßLinuxϵͳµÄЧÂʺÍÎȹÌÐÔ£¬´Ó¶ø¸üºÃµØÖª×ãÓ¦ÓÃÐèÇó¡£È»¶ø£¬ÓÉÓÚ²î±ðϵͳÇéÐεIJî±ðºÍÓ¦Óó¡¾°µÄ¶àÑùÐÔ£¬ÏêϸµÄÄÚ´æÖÎÀíºÍÐÔÄܵ÷ÓŲÙ×÷¿ÉÄÜ»áÓÐËù²î±ð£¬ÐèҪƾ֤ÏÖÕæÏàÐξÙÐе÷½âºÍÓÅ»¯¡£
ÒÔÉϾÍÊÇÔõÑù¾ÙÐÐLinuxϵͳµÄÄÚ´æÖÎÀíºÍÐÔÄܵ÷ÓŵÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡