pmap PID #查看静态内存使用情况
网站建设哪家好,找创新互联公司!专注于网页设计、网站建设、微信开发、微信小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了东营免费建站欢迎大家使用!
top #按shift+m 按照内存使用情况进行排序
ps -ef | grep nginx #查看PID 比1234
cat /proc/1234/status #查看详细信息
RSS列 表示 程序占用少物理内存 虚拟内存用考虑并占用实际物理内存 (2). top 命令 其VIRT(或VSS)列 表示程序占用少虚拟内存 同 ps aux VSZ列 RES列 表示 程序占用少物理内存同 ps aux RSS列 2.linux 查看前系统占用少内存 般命令 free其 free系统少内存使用由于 linux 系统内存使用原则 内存宝贵 能使用少使用少 所 linux已经调用包缓存起放内存实际使用内存理解 free+buffers+cached3.解完些命令 再使用ps aux 命令查看候 发现奇怪现象 所 RSS 列数据加起 比物理内存数要 比 物理内存2G RSS列数据加起能5G 事 RSS列值骗我 linux内存机制: 运行程序 linux调用该程序依赖链接库 lib.xx.so 首先看该链接库否映射进内存没映射则代码段与数据段映射内存否则其加入进程址空间 N程序依赖lib.xx.so候 实际内存lib.xx.so N RSS显示程序占用实际物理内存 lib.xx.so算进 比 X程序 本身占用内存5M lib.xx.so 占用内存2Mlib.xx.soN程序共享依赖 则RSS显示X程序运行占用内存7M 实际 X程序占用5M空间 余2m讨入RSS 用ps aux显示内存占用情况 N共享依赖lib.xx.soN程序都2m空间算自RSS RSSsum值比实际物理内存 linux内存使用机制复杂 句两句能说清楚简单说明 ps auxRSS值 并能真实反映物理内存使用情况 4. 查看更详细内存使用情况 用几种 或者几种结合使用:几种都需要root账户权限(1). pmap -d $pid $pid 运行程序pid(2). cat /proc/$pid/smaps smaps数据比较详细简单归纳归纳命令: cat /proc/$pid/smaps | awk '/Size|Rss|Pss|Shared|Private|Referenced|Swap/{val_name=gensub(/([a-zA-Z_]*).*/,"\\1",1,$1); list[val_name]+=$2; }END{for(val in list)print val,list[val];}' (3). cat /proc/$pid/maps(4). cat /proc/$pid/statm输解释第列 size:任务虚拟址空间 第二列 Resident:使用物理内存 第三列 Shared:共享页数第四列 Trs:程序所拥执行虚拟内存 第五列 Lrs:映像倒任务虚拟内存空间库 第六列 Drs:程序数据段用户态栈 第七列 dt:脏页数量(5). vmstat命令据说提供些参考信息具体未研究 5.作phper尝试使用php函数memory_get_usage() 该函数能php前运行程序实际真占用内存数量 真想php真占用内存 概能, 程序运行始执行memory_get_usage(). 程序运行结束执行memory_get_usage() 两者值相减值 应该相比较准确内存占用数量 没测试 考虑 数量没实际意义 加平比较忙懒试
用来查看某个可执行文件所依赖的所有动态库的名字及其所在路径。
qt程序动态打包步骤
1. 从可运行程序的文件中拿出可执行文件
2. 终端下使用ldd命令查看需要的连接库
例如 ldd + 可执行文件
3. 把ldd查询到的所有需要的库导出
4. 编写.sh文档(.sh文件命名必须与可执行文件名字一样例:可执行文件名 test, .sh 文件名为 test.sh)
.sh文件代码如下:
#!/bin/sh
appname=`basename $0 | sed s,\.sh$,,`
dirname=`dirname $0`
tmp="${dirname#?}"
if [ "${dirname%$tmp}" !="/" ]; then
dirname=$PWD/$dirname
fi
LD_LIBRARY_PATH=$dirname
export LD_LIBRARY_PATH
$dirname/$appname $*
5. 把所用到的库,可执行文件, .sh文件放到同一目录下
6. 终端中进入这一目录,输入:
chmod +x test.sh
7. 执行程序点击.sh文件或者终端输入:
./test.sh
1)、在Red Hat Linux中函数库可以分为3种类型:静态函数库、共享函数库和动态加载函数库。
静态函数库在应用程序编译时就把函数的执行代码加入到应用程序中。
共享函数库中的函数当一个可执行程序启动时被加载。
动态加载函数库可以在程序运行的任何阶段加载函数。
2)、使用nm和ldd命令可以获得关于库函数的信息。
nm命令可以列出一个函数库文件中的符号表,它对静态的库函数和共享的库函数都能起作用。
ldd命令可以列出一个程序正常运行所需要的共享库。
3)、库函数缺省存放在/lib和/usr/lib中,以及动态库配置文件内所列的目录中。
如果库函数没有在这些目录下,可以在中加入所须目录,后运行ldconfig命令,使之生效。或设置环境变量LD_LIBRARY_PATH或LD_PRELOAD加入库函数所存放的目录。
还有不会的请参考《linux就该这么学》,针对各种linux疑难杂症,帮助linux学习者。