转接from work --two
0、查看Android的物理存储空间df
adb shell df -h 表示以MB单位查看存储使用情况
1、在Android设备中创建指定大小的文件(也能测试其IO性能)
adb shell dd if=/dev/zero of=/sdcard/file.img bs=4294967295 count=1
dd:指定转换或复制文件 ; if:源文件 ; of:目标文件 ; bs:块的大小(最大为4294967295,即2G); count:块的数量
2、监控内存使用状况的命令free
adb shell free -m 表示以MB单位查看内存使用情况
*total:物理内存的总大小 *used:已使用的物理内存大小
*free:可用的物理内存大小 *shared:多个进程共享的内存值
*buffers/cache:磁盘缓存的大小
注:缓冲区(buffer)与缓存(cache):缓冲区用来缓冲块设备,只记录文件系统的元数据以及跟踪瞬时页面,而缓存用来给文件做缓冲。
3、监控系统进程命令top
adb shell top -h 查看top命令帮助
4、查看系统各种资源之间相关性能简要信息(查看帮助 adb shell vmstat -h)
adb shell vmstat 2 表示每2秒更新一次输出信息(输出结果如下图:
*procs : r 列表示运行和等待CPU时间的进程数,如果值长期大于CPU个数,说明CPU不足。
b 列表示在等待资源的进程数,比如正在等待I/O或者内存交换等
*memory : swpd 表示切换至内存交换区的内存数量(以KB为单位)。如果值不为零,或者比较大,只要si、so
的值长期为零,就不需要担心,不会影响性能。
free 表示当前空闲的物理内存数量
buff 表示缓冲区缓存的内存数量,一般对块设备的读写才需要缓冲。
cache 表示页面缓存的内存数量,一般作为文件系统缓存,频繁访问的文件都会被缓存,如果cache值
较大,说明缓存的文件数较多,如果此时I/O中的bi比较小,说明文件系统效率比较好。
*swap : si 表示内存进入内存交换区的数量; so 表示内存交换区进入内存的数量
一般情况si、so的值都为0,如果值长期不为0,则表示内存不足。
*io 显示磁盘读写状况:
bi 表示从块设备读入数据的总量(即块读磁盘 KB/s) ;
bo 表示从块设备写入数据的总量(即写磁盘)
*system 显示采集间隔内发生的中断次数:
in 表示在某一时间间隔中观测待的每秒设备中断次数
cs 表示每秒产生的上下文切换次数
in和cs的值越大,会看到内核占用CPU的时间越多
*cpu 显示了CPU的使用状态:
us 显示用户进程占用CPU的时间百分比。us的值高,说明用户占用CPU的时间多,但如果长期大于
50%,就需考虑优化程序或算法。
sy 显示内核进程占用CPU的时间百分比,sy值较高,说明内核消耗的CPU资源很多。
id 显示CPU处在空闲状态的时间百分比。
wa 显示I/O等待占用CPU时间百分比。wa值越高,说明I/O等待越严重;若wa超过20%,说明I/O等待
严重。