#1 楼
一种简单的解决方案是让Raspberry Pi本身通过动态内存拆分来管理如何在CPU和GPU之间拆分RAM。虽然raspi-config无法为您做到这一点,但/ boot / config仍具有示例设置.txt在论坛上可用。
评论
谢谢你我不知道团队拥有动态分配权。
– Vincent P
13年1月8日在5:34
如果您使用的是开源GPU驱动程序-vc3-fkms-v3d和vc4-kms-v3d-启用了动态拆分-但如果您使用的是Broadcom封闭源驱动程序,那么..根据raspberry pi内核开发人员,通过Broadcom封闭源代码驱动程序进行动态拆分-AKA CMA拆分-从来没有正确运行过,目前不建议使用(该参考在github上的raspberry pi的内核开发项目中的某处)。
–zertyz
20年1月21日在15:59
#2 楼
您可以使用top
或htop
命令获得内存使用情况的实时视图。如果收到消息htop
,则可能需要安装htop: command not found
。假设您正在使用Raspbian,请通过运行sudo apt-get install htop
进行安装
评论
与常规上衣相比有什么好处?
–摩根·库尔贝(Morgan Courbet)
2013年1月7日19:23
htop似乎“更好” htop.sourceforge.net/index.php?page=comparison
–独家新闻
13年1月8日,0:15
htop更加用户友好。我总是用htop代替top
– w0rldart
13年1月23日在13:02
另外,如果您使用的是诸如RPi 2的多核计算机,则可以在漂亮的条形图中看到每个核的负载,例如,当您在任务列表中看到“ python”时,它会显示整个命令行,因此您查看正在运行的程序
– jpw
16年1月23日在22:39
@jpwynn请注意,在顶部按1也会看到所有处理器。但是我同意htop通常更好/更易于使用。
– Alexis Wilke
18-3-14的2:11
#3 楼
对于CPU使用率和系统内存,请尝试使用htop
命令,该命令非常详细且可自定义,如果此命令不起作用,请使用top
(或apt install htop
)。GPU内存使用率(还有许多其他细节)与
/opt/vc/bin/vcdbg reloc stats
。总内存位于顶部,空闲内存位于底部关于最佳CPU / GPU分配。这实际上取决于您使用RPi的目的。如果您不播放视频和游戏(GPU优化),则为CPU提供最大的RAM。另外,如果运行的“无头”(未连接到屏幕),则为CPU分配尽可能多的RAM。
Chromium GPU支持在很大程度上取决于您拥有的RPi版本和格式。以及您期望卸载到GPU的内容。
评论
所以问题是我不确定chrome是否使用gpu。如果确实如此,那是什么类型的事情。这对使用GPU很有用,但可能无法实现
–独家新闻
13年1月8日,0:23
@Scoop我已经相应更新了我的答案。
– Vincent P
13年1月8日,下午5:33
@Scoop根据我今天(2018年)的测试,Chrome浏览器中包含对GPU的支持。您可以转到chrome:// gpu看到它。
– Alexis Wilke
18年3月14日在4:14
您可能需要更新答案,现在我们有了命令“ / opt / vc / bin / vcdbg reloc stats”
–zertyz
20年1月21日在15:52
#4 楼
要监视RAM使用情况,可以运行free -h -s 1
。每秒(-s 1
)都会显示类似的表格: total used free shared buffers cached
Mem: 438M 146M 292M 0B 15M 102M
-/+ buffers/cache: 28M 409M
Swap: 99M 0B 99M
Mem:
行是您要查找的内容。在上面的示例中,您可以看到当前总共使用了438MB的内存146MB,还有292MB的可用空间。在我的512MB RPi上,我为GPU设置了64MB。
评论
请注意,这实际上不是CPU使用率,而是RAM使用率。
–小屋8
13年8月15日在18:25
#5 楼
要监视Raspbian中的CPU,RAM和SWAP使用情况,可以使用TOP或HTOP。在终端中,运行
top
。默认情况下,TOP是可用的,并且提供了适当的详细信息。但是,我发现HTOP更有用,具有更好的细节和功能。 HTOP默认情况下不可用,需要安装。
在终端中运行
sudo apt-get update && sudo apt-get install htop
以安装HTOP。在终端中,安装完成后运行
htop
。 /> 希望有所帮助。
#6 楼
可让您深入了解GPU分配的命令是sudo vcdbg reloc
。输出看起来像从这里开始。以我为例,我看到分配的236M太接近/boot/config.txt
-> gpu_mem=256
中的值,所以我需要将其稍微提高一点。Relocatable heap version 4 found at 0x30000000
total space allocated is 236M, with 234M relocatable, 2.3M legacy and 0 offline
1 legacy blocks of size 2359296
free list at 0x3ad9aaa0
352 free memory in 2 free block(s)
largest free block is 320 bytes
0x30000000: legacy block 2.3M
0x30240000: free 320
[ 80] 0x30240140: used 608 (refcount 1 lock count 0, size 540, align 4, data 0x30240160, d0rual) 'GLXX_TEXTURE_T'
[ 78] 0x302403a0: used 192 (refcount 1 lock count 0, size 128, align 4, data 0x302403c0, D1rual) 'GLXX_BUFFER_INNER_T.storage'
评论
您可能会对您说的有些困惑,“在我看来,我看到分配的236M太接近了/boot/config.txt-> gpu_mem = 256中的值”,因为乍一看这意味着您从第一行获得了第一个数字,该数字将始终相同。可用内存量实际上位于第二个节中,并且已使用的内存量将是分配的值(236M)减去此值。这些将符合vcgencmd get_mem reloc和vcgencmd get_mem reloc_total。 raspberrypi.org/forums/viewtopic.php?t=158157
–金锁♦
19年7月19日在14:04
#7 楼
这个问题很老,但是被接受的答案并不能说明如何监视GPU使用情况。有一种方法-仅使用封闭的Broadcom驱动程序进行测试:
# /opt/vc/bin/vcdbg reloc stats
Relocatable heap version 4 found at 0x17800000
total space allocated is 116M, with 114M relocatable, 2.3M legacy and 0 offline
1 legacy blocks of size 2359296
small_allocs : 1163
allocs : 6731
alloc_fails : 0
legacy_block_fails : 0
compactions : 0
discard_compactions : 0
aggressive_compactions : 0
aggressive_compaction_waits : 0
aggressive_compaction_timeouts: 0
locks : 0
small_locks : 0
free list at 0x1ebf24e0
86M free memory in 6 free block(s)
largest free block is 86M bytes
有关更多信息,
# /opt/vc/bin/vcdbg help
Usage: /opt/vc/bin/vcdbg command [args ...]
Where command is one of the following:
addr2line ADDR [ADDRS...] - Convert addresses to function names
bootfs [dump|get [ARGS]] - Commands related to BootFS
dump ADDR|SYM [LEN] - Dumps memory (Hex and ASCII)
dumpstate - One shot dump of all minimal commands
elfsym SYMBOL [SYMBOLS...] - Prints out the values of the indicated ELF-file symbol
grep WORD - Search memory for a 32-bit word
help [command] - Prints command help information
hist - Processes task history log
hostmemuse - Dump host memory usage scoreboard
image ADDR|HNDL|all W H TYPE - Save image data to file in current directory, with given size and type (8bpp, rgbx32, tf_rgbx32, yuv420, ...)
isp_timeout_dump - Dump ISP hardware state after a timeout
log COMMAND [ARGS] - Commands related to logging
malloc - Report on the VC malloc heap
pools [NAME] [images] - Report on vc_pools [optionally save images to files in current directory]
reloc [small|stats] - Dump out relocatable heap [or just small, or stats]
save FILENAME [ADDR|SYM [LEN]] - Saves the indicated memory (or all) to a file
set ADDR|SYM VALUE [VALUES...] - Writes 32-bit words to memory (address, or VC_DEBUG_VAR or ELF symbol)
sym SYMBOL - Prints out the values of the indicated VC_DEBUG_VAR symbol
syms - Prints out the values of the available VC_DEBUG_VAR symbols
trash ADDR [LEN] - Trash VC memory [default: 1 byte]
tx - Examine ThreadX state
vchiqdump - Examine vchiq state
vchiqslot - Examine vchiq slot data
version - Print VC firmware version
评论
这个问题可能对您有用。海事组织,这个问题令人困惑。您是否想知道应用程序和图形的内存使用情况(以便您可以定义拆分),还是想知道当前的CPU / GPU负载?
@ otakun85我想知道应用程序的当前使用情况,以便可以对在哪里进行拆分做出很好的决定
@Jivings是的,这是一个很好的问题。很高兴知道某些功能会打开或关闭,具体取决于分配给GPU的内存量。如果可能的话,虽然知道确切的用法也很有帮助,但也可以确定我属于哪个类别