÷è÷ë²Ù×÷ϵͳÔõÑù¾ÙÐÐϵͳÐÔÄܵļà¿ØºÍÓÅ»¯£¿
÷è÷ë²Ù×÷ϵͳÊÇ»ªÎª×ÔÖ÷Ñз¢µÄÒ»¿î¸ßÐÔÄÜ¡¢¸ß¿É¿¿ÐԵIJÙ×÷ϵͳ£¬ÆÕ±éÓ¦ÓÃÓÚÖÖÖÖ»ªÎª×°±¸Ï¢Õù¾ö¼Æ»®ÖС£ÎªÁËÈ·±£ÏµÍ³µÄÔËÐÐЧÂʺÍÎȹÌÐÔ£¬÷è÷ë²Ù×÷ϵͳÌṩÁËһϵÁеÄϵͳÐÔÄܼà¿ØºÍÓÅ»¯¹¦Ð§¡£±¾ÎĽ«ÏÈÈÝ÷è÷ë²Ù×÷ϵͳµÄϵͳÐÔÄܼà¿Ø¹¤¾ßºÍÓÅ»¯ÒªÁ죬²¢Í¨¹ý´úÂëʾÀý¾ÙÐÐ˵Ã÷¡£
ϵͳÐÔÄܼà¿Ø¹¤¾ß
÷è÷ë²Ù×÷ϵͳÌṩÁ˶àÖÖϵͳÐÔÄܼà¿Ø¹¤¾ß£¬¿ÉÒÔʵʱ¼à²âϵͳµÄÔËÐÐ״̬ºÍÐÔÄÜÖ¸±ê¡£ÆäÖаüÀ¨ÒÔϼ¸¸ö³£ÓõŤ¾ß£º
1.1 TopÏÂÁî
TopÏÂÁîÊÇÒ»¸öʵʱ¼à¿ØϵͳÐÔÄܵÄÏÂÁîÐй¤¾ß£¬¿ÉÒÔÏÔʾϵͳµÄ CPU ʹÓÃÂÊ¡¢ÄÚ´æʹÓÃÂÊ¡¢Àú³Ì״̬µÈ¡£Í¨¹ýÊäÈëtopÏÂÁî¿ÉÒÔÉó²éϵͳµÄÕûÌåÐÔÄÜÇéÐΣ¬²¢¿ÉÒÔƾ֤¸÷¸öÖ¸±ê¾ÙÐÐÅÅÐò¡£ÏÂÃæÊÇʹÓÃtopÏÂÁîÉó²éϵͳCPUʹÓÃÂʵÄʾÀý´úÂ룺
$ top
µÇ¼ºó¸´ÖÆ
1.2 SARÏÂÁî
SARÏÂÁîÊÇϵͳÐÔÄÜÆÊÎö¹¤¾ß£¬¿ÉÒÔÍøÂçºÍ±¨¸æϵͳµÄÖÖÖÖÐÔÄÜÊý¾Ý£¬ÈçCPUʹÓÃÂÊ¡¢ÄÚ´æʹÓÃÂÊ¡¢´ÅÅÌIO¡¢ÍøÂç´ø¿íµÈ¡£ÏÂÃæÊÇʹÓÃSARÏÂÁîÉó²éCPUʹÓÃÂʵÄʾÀý´úÂ룺
$ sar -u
µÇ¼ºó¸´ÖÆ
1.3 Perf¹¤¾ß
PerfÊÇÒ»¸ö¹¦Ð§Ç¿Ê¢µÄÐÔÄÜÆÊÎö¹¤¾ß£¬¿ÉÒÔ¶Ôϵͳ¾ÙÐÐÖÜÈ«µÄÐÔÄÜÆÊÎöºÍµ÷ÓÅ¡£Ëü¿ÉÒÔ¼à¿ØCPU¡¢ÄÚ´æ¡¢´ÅÅÌIO¡¢ÍøÂçµÈ¸÷¸ö·½ÃæµÄÐÔÄÜÖ¸±ê£¬²¢ÌìÉúÏêϸµÄ±¨¸æ¡£ÏÂÃæÊÇʹÓÃperfÏÂÁî¼à¿ØϵͳCPUʹÓÃÂʵÄʾÀý´úÂ룺
$ perf stat -e cpu-cycles -a sleep 10
µÇ¼ºó¸´ÖÆ
ϵͳÐÔÄÜÓÅ»¯ÒªÁì
³ýÁËϵͳÐÔÄܼà¿Ø¹¤¾ß£¬÷è÷ë²Ù×÷ϵͳ»¹ÌṩÁËһЩÐÔÄÜÓÅ»¯ÒªÁ죬¿ÉÒÔ×ÊÖúÓû§ÌáÉýϵͳµÄÔËÐÐЧÂʺÍÏìÓ¦ËÙÂÊ¡£ÏÂÃæÏÈÈݼ¸ÖÖ³£ÓõÄÐÔÄÜÓÅ»¯ÒªÁì¡£
2.1 Àú³ÌÓÅÏȼ¶µ÷½â
÷è÷ë²Ù×÷ϵͳµÄÀú³Ìµ÷ÀíÆ÷¿ÉÒÔƾ֤Àú³ÌµÄÓÅÏȼ¶À´·ÖÅÉCPU×ÊÔ´£¬Óû§¿ÉÒÔͨ¹ýÐÞˢг̵ÄÓÅÏȼ¶À´µ÷½âÀú³ÌµÄÖ´ÐÐ˳ÐòºÍÕ¼ÓÃCPUʱ¼äµÄ±ÈÀý¡£ÏÂÃæÊÇÒ»¸öµ÷½âÀú³ÌÓÅÏȼ¶µÄʾÀý´úÂ룺
$ renice -n -10 -p <pid>
µÇ¼ºó¸´ÖÆ
2.2 »º´æÖÎÀí
÷è÷ë²Ù×÷ϵͳÌṩÁ˸»ºñµÄ»º´æÖÎÀí»úÖÆ£¬¿ÉÒÔͨ¹ýµ÷½â»º´æ»úÖƵIJÎÊýÀ´ÓÅ»¯ÏµÍ³µÄIOÐÔÄÜ¡£ÏÂÃæÊÇÒ»¸öµ÷½â»º´æ²ÎÊýµÄʾÀý´úÂ룺
$ echo 2048 > /proc/sys/vm/dirty_background_bytes
µÇ¼ºó¸´ÖÆ
2.3 ϵͳÄÚºËÓÅ»¯
÷è÷ë²Ù×÷ϵͳµÄÄÚºËÊǸ߶ȿɶ¨ÖƵģ¬Óû§¿ÉÒÔƾ֤ϵͳµÄÐèÇó¶ÔÄں˾ÙÐÐÓÅ»¯¡£¿ÉÒÔͨ¹ýÐÞ¸ÄÄں˵ÄÉèÖÃÎļþÀ´µ÷½âÄں˲ÎÊý£¬ÒÔÌáÉýϵͳµÄÐÔÄܺÍÎȹÌÐÔ¡£ÏÂÃæÊÇÒ»¸öÐÞ¸ÄÄں˲ÎÊýµÄʾÀý´úÂ룺
$ echo 1000000 > /proc/sys/kernel/threads-max
µÇ¼ºó¸´ÖÆ
ͨ¹ýϵͳÐÔÄܼà¿Ø¹¤¾ßºÍÐÔÄÜÓÅ»¯ÒªÁ죬÷è÷ë²Ù×÷ϵͳ¿ÉÒÔ¶ÔϵͳµÄÔËÐÐ״̬ºÍÐÔÄÜÖ¸±ê¾ÙÐÐʵʱ¼à¿Ø£¬²¢ÌṩÏìÓ¦µÄÓÅ»¯ÒªÁì¡£ÔÚÏÖʵµÄϵͳÔËάºÍ¿ª·¢ÊÂÇéÖУ¬¿ÉÒÔƾ֤ÐèҪѡÔñÊʺϵŤ¾ßºÍÒªÁ죬¶Ôϵͳ¾ÙÐÐÐÔÄܼà¿ØºÍÓÅ»¯£¬ÒÔÌáÉýϵͳµÄÐÔÄܺÍÎȹÌÐÔ¡£
ÒÔÉϾÍÊÇ÷è÷ë²Ù×÷ϵͳÔõÑù¾ÙÐÐϵͳÐÔÄܵļà¿ØºÍÓÅ»¯£¿µÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡