linux系统下查看CPU、内存负载情况
15.
16. free = global_page_state(NR_FILE_PAGES);
17. free += nr_swap_pages;
18.
19. /*
20. \* Any slabs which are created with the
21. \* SLAB_RECLAIM_ACCOUNT flag claim to have contents
22. \* which are reclaimable, under pressure. The dentry
23. \* cache and most inode caches should fall into this
24. */
25. free += global_page_state(NR_SLAB_RECLAIMABLE);
26.
27. /*
28. \* Leave the last 3% for root
29. */
30. if (!cap_sys_admin)
31. free -= free / 32; //root用户可以在free更少(3%)的时候,分配内存。
32.
33. if (free > pages) // pages为需要分配的内存大小,free为根据一定规则算出来的“空闲内存大小”,第一次free仅为NR_FILE_PAGES+NR_SLAB_RECLAIMABLE,由于直
接或者系统中“实际空闲”内存代价比较大,所以进行分阶判断,提高效率。
34. return 0;
35.
36. /*
37. \* nr_free_pages() is very expensive on large systems,
38. \* only call if we're about to fail.
39. */
40. n = nr_free_pages(); //当第一次判断不满足内存分配条件时,再进行“实际空闲”内存的获取操作。
41.
42. /*
43. \* Leave reserved pages. The pages are not for anonymous pages.
44. */
45. if (n <= totalreserve_pages)
46. goto error;
47. else
48. n -= totalreserve_pages;
49.
50. /*
51. \* Leave the last 3% for root
52. */
53. if (!cap_sys_admin)
54. n -= n / 32;
55. free += n;
56.
57. if (free > pages)
58. return 0;
59.
60. goto error;
61. }
62.
63. allowed = (totalram_pages - hugetlb_total_pages()) //当overcommit_memory=2时,根据系统中虚拟地址空间的总量来进行限制。
64. \* sysctl_overcommit_ratio / 100;
65. /*
66. \* Leave the last 3% for root
67. */
68. if (!cap_sys_admin)
69. allowed -= allowed / 32;
70. allowed += total_swap_pages;
71.
72. /* Don't let a single process grow too big:
73. leave 3% of the size of this process for other processes */
74. if (mm)
75. allowed -= mm->total_vm / 32;
76.
77. if (percpu_counter_read_positive(&vm_committed_as) < allowed)
78. return 0;
79. error:
80. vm_unacct_memory(pages);
81.
82. return -ENOMEM;
83. }procs
r 列表示运行和等待cpu时间片的进程数,如果长期大于1,说明cpu不足,需要增加cpu。
b 列表示在等待资源的进程数,比如正在等待I/O、或者内存交换等。
cpu 表示cpu的使用状态
us 列显示了用户方式下所花费 CPU 时间的百分比。us的值比较高时,说明用户进程消耗的cpu时间多,但是如果长期大于50%,需要考虑优化用户的程序。
sy 列显示了内核进程所花费的cpu时间的百分比。这里us + sy的参考值为80%,如果us+sy 大于 80%说明可能存在CPU不足。
wa 列显示了IO等待所占用的CPU时间的百分比。这里wa的参考值为30%,如果wa超过30%,说明IO等待严重,这可能是磁盘大量随机访问造成的,也可能磁盘或者磁盘访问控
制器的带宽瓶颈造成的(主要是块操作)。
id 列显示了cpu处在空闲状态的时间百分比
system 显示采集间隔内发生的中断数
in 列表示在某一时间间隔中观测到的每秒设备中断数。
cs列表示每秒产生的上下文切换次数,如当 cs 比磁盘 I/O 和网络信息包速率高得多,都应进行进一步调查。
memory
swpd 切换到内存交换区的内存数量(k表示)。如果swpd的值不为0,或者比较大,比如超过了100m,只要si、so的值长期为0,系统性能还是正常
free 当前的空闲页面列表中内存数量(k表示)
buff 作为buffer cache的内存数量,一般对块设备的读写才需要缓冲。
cache: 作为page cache的内存数量,一般作为文件系统的cache,如果cache较大,说明用到cache的文件较多,如果此时IO中bi比较小,说明文件系统效率比较好。
swap
si 由内存进入内存交换区数量。
so由内存交换区进入内存数量。
IO
bi 从块设备读入数据的总量(读磁盘)(每秒kb)。
bo 块设备写入数据的总量(写磁盘)(每秒kb)
绝对路径:如/etc/init.d
当前目录和上层目录:./ ../ 主目录:~/
切换目录:cd
查看当前进程:ps 执行退出:exit
查看当前路径:pwd
清屏:clear
退出当前命令:ctrl+c 彻底退出执行睡眠 :ctrl+z 挂起当前进程 fg 恢复后台查看当前用户 id:”id“:查看显示目前登陆账户的 uid 和 gid 及所属分组及用户名
查看指定帮助:如 man adduser 这个很全 而且有例子;adduser --help 这个告诉你一些常用参数;info adduesr;
答案: ls 执行的功能:列出指定目录中的目录,以及文件哪些参数以及区别:a 所有文件 l 详细信息,包括大小字节数,可读可写可执行的权限等
软链接:ln -s slink source 硬链接:ln link source
创建目录:mkdir
创建文件:典型的如 touch,vi 也可以创建文件,其实只要向一个不存在的文件输出,都会创建文件复制文件:cp 7. 文件权限修改用什么命令?格式是怎么样的?文件权限修
改:chmod
格式如下:
$ chmod u+x file 给 file 的属主增加执行权限
$ chmod 751 file 给 file 的属主分配读、写、执行(7)的权限,给 file 的所在组分配读、执行(5)的权限,给其他用户分配执行(1)的权限
$ chmod u=rwx,g=rx,o=x file 上例的另一种形式
$ chmod =r file 为所有用户分配读权限
$ chmod 444 file 同上例
$ chmod a-wx,a+r file 同上例
$ chmod -R u+r directory 递归地给 directory 目录下所有文件和子目录的属主分配读的权限