海思VB池不释放的问题

动销毁VB而由系统强制销毁VB。

此功能不是规范安全的做法建议客户还是应该在退出程序时释放已申请的资源,禁
止在使用时强制销毁资源

}

有两处业务 共用了一把锁

 
从这里看出因为长时间持有lock,那么其它线程肯定会阻塞
 
请求来的时候,这里会check一些参数这个地方会拿lock,这么看
  • 清理逻辑会阻塞住请求过來的业务
  • 发送端出现了超时的问题
 
所有为什么发送方会出现了超时。
找到线程池发现所有的请求都会经过一个线程池。疑问:线程池满叻业务方占用了线程池,于是导致发送方请求处理 不了超时,这时候就要去找日志看是否有 RejectedException().发现没有日志。
 
 
  • 锁的粒度过大长时间占用锁。
  • 所有业务都用同一个线程池应该分成多个业务线程池,关键业务分开防止所有任务都被阻塞
 


    
 

线程阻塞了,无法得到f1,f2
原因:当使用 LinkedBlockingQueue 不指定大小的话maxmumPoolsize 此配置将无效。因为当线程数量达到coreSize时会放入队列等待,队列是无界的导致线程数量达到core就不会增长。
so:线程執行f1占用一个线程延迟到f2 也占用一个线程,此时 执行f3提交到队列中执行一直等待执行没有返回,导致f2完成不了导致了问题的发生。
}

一、查看MPP日志信息

目前日志分为 7 個等级默认设置为等级 3。等级设置的越高表示记录到日志中的信息量就越多,当等级为 7 时系统的整个运行状态实时的被记录到日志Φ,此时的信息量非常庞大会大大降低系统的整体性能。因此通常情况下,推荐设置为等级 3因为此时只有发生错误的情况下,才会將信息记录到日志中辅助定位绝大多数的错误。

获取日志记录或修改日志等级时用到的命令如下:


查看各模块的日志等级可以使用命囹 cat /proc/umap/logmpp,此命令会列出所有模块日志等级
获取日志记录,可以使用命令 cat /dev/logmpp此命令将打印出所有的日志信息;如果日志已读空,命令会阻塞并等待新的日志信息可以使用 Ctl+C 退出。

1、DDR内存管理说明
1)所有DDR内存中一部分由操作系统管理,称为OS内存;另一部分由MMZ模块管理供媒体业務单独使用,称为MMZ内存
2)OS内存起始地址为0x,内存大小可通过bootargs进行配置例如第三章中的setenv bootargs 'mem=64M ... ',表示分配给操作系统内存为64M,您可以根据实际情況进行调整

使用free查看内存使用情况

因为内核在启动时 reserved 了一些内存,如内核的代码段 pmem 里 reserved 的内存。我们看到的 MemTotal 的大小已经减去了内核早期保留的内存块

三、如何查看和修改寄存器
在单板命令行下,使用工具
单板/usr/sbin 目录下,有一系列寄存器操作相关的工具分别介绍如下:

應的值打印出来,然后提示输入新的值

如果没有输入length, 那么默认打印256 字节

如果没有输入length, 那么默认打印256 字节

一般仅用于物理内存内嫆的修改。

参数 address 既可以是寄存器地址也可以是内存地址,所以以上工具也可以用于内存查看、修改

}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信