df -h [文件] 查看文件系统磁盘空间占用情况 -h --human-readable print sizes in human readable format (e.g., 1K 234M 2G) 人类可读方式显示
du -sh [文件] 查看文件目录大小 -s, --summarize display only a total for each argument 总共
free -m 查看内存使用情况
find / -name 文件名 //查找文件
pwd 查看当前文件全路径
lsof -i:端口号 查看端口占用情况
rz -be上传文件
java -jar *.jar & 运行一个jar包,& 放到最后使得jar在后台运行,有进程号,没有&,则运行的jar没有进程号
cat /proc/进程号/status查看某个进程内存使用情况
ls -a 查看所有文件,包括隐藏的文件
-------------------------------------------------------
VmSize(KB) 任务虚拟地址空间的大小 (total_vm-reserved_vm),其中total_vm为进程的地址空间的大小,reserved_vm:进程在预留或特殊的内存间的物理页
VmLck(KB) 任务已经锁住的物理内存的大小。锁住的物理内存不能交换到硬盘 (locked_vm)
VmRSS(KB) 应用程序正在使用的物理内存的大小,就是用ps命令的参数rss的值 (rss)
VmData(KB) 程序数据段的大小(所占虚拟内存的大小),存放初始化了的数据; (total_vm-shared_vm-stack_vm)
VmStk(KB) 任务在用户态的栈的大小 (stack_vm)
php执行引擎还会将用户经常访问的php程序驻留在内存中,其他用户再一次访问这个程序时就不需要重新编译程序了,只要直接执行内存中的代码就可以了,这也是php高效率的体现之一。程序中都会引用库api,比如每个c程序都要引用stdio.h库的printf(),在程序运行时,库代码也要被加入到内存,这么多程序都引用了这个库,难道我内存中需要加很多份吗。我们写的程序最终都是要用编译器,进行编译链接形成一段机器可以知道的二进制代码,接着存到一个内存中,这时候每一段程序代码都会有自己的一个地址,计算机按照地址增1,依次执行这段代码,当遇到代码调用别的函数的时候,这时候就要存储目前程序执行的很多状态呀,把这些东西放入堆栈里面,然后去执行被调用的函数,执行完之后再返回原来的程序断点处继续执行。
VmLib(KB) 被映像到任务的虚拟内存空间的库的大小 (exec_lib)
VmPTE 该进程的所有页表的大小,单位:kb
Threads 共享使用该信号描述符的任务的个数,在POSIX多线程序应用程序中,线程组中的所有线程使用同一个信号描述符
1、VmRSS是真实正在占用的内存,而VmData是虚拟内存,大小差异大并没有什么问题。
bss段:bss段(block started by symbol)通常是指用来存放程序中未初始化(程序员在创建时没有赋值)的全局变量和静态变量的一块内存区域(可读可写不可执行)。一 般来说,段错误就是指访问的内存超出了系统所给这个程序的内存空间,通常这个值是由gdtr来保存的,他是一个48位的寄存器linux常用命令,其中的32位是保存由它指 向的gdt表,后13位保存相应于gdt的下标,最后3位包括了程序是否在内存中以及程序的在cpu中的运行级别,指向的gdt是由以64位为一个单位的 表,在这张表中就保存着程序运行的代码段以及数据段的起始地址以及与此相应的段限和页面交换还有程序运行级别还有内存粒度等等的信息。一 般来说,段错误就是指访问的内存超出了系统所给这个程序的内存空间,通常这个值是由gdtr来保存的,他是一个48位的寄存器,其中的32位是保存由它指向的gdt表,后13位保存相应于gdt的下标,最后3位包括了程序是否在内存中以及程序的在cpu中的运行级别,指向的gdt是由以64位为一个单位的表,在这张表中就保存着程序运行的代码段以及数据段的起始地址以及与此相应的段限和页面交换还有程序运行级别还有内存粒度等等的信息。