kuoruan / openwrt-frp

Frpc & Frps for OpenWrt
MIT License
635 stars 148 forks source link

top观察cortex_A7_neon的VSZ为768M #9

Open Fisherworks opened 4 years ago

Fisherworks commented 4 years ago

刷机Netgear EX6200v2到OpenWRT 18.06.2 整机内存256M,闪存可用于jffs的空间8M 使用您编译的 cortex_A7_neon,ver 0.31.2,再加上您另一个工程的luci界面,一次配置成功

唯一的疑问如下

Mem: 60252K used, 190640K free, 580K shrd, 3272K buff, 14096K cached
CPU:   1% usr   1% sys   0% nic  96% idle   0% io   0% irq   0% sirq
Load average: 0.03 0.10 0.09 2/90 3835
  PID  PPID USER     STAT   VSZ %VSZ %CPU COMMAND
 3835  3453 py27     R     1072   0%   3% top
 2225     2 root     IW       0   0%   1% [kworker/1:0]
 1768     1 nobody   S     786m 320%   0% /usr/bin/frpc -c /var/etc/frpc/frpc.main.ini
 1320     1 root     S     3168   1%   0% /usr/bin/monit -I
 2728     1 root     S     1616   1%   0% /usr/sbin/hostapd -s -P /var/run/wifi-phy1.pid -B /var/run/
 2400     1 root     S     1616   1%   0% /usr/sbin/hostapd -s -P /var/run/wifi-phy0.pid -B /var/run/
  649     1 root     S     1532   1%   0% /sbin/netifd
  513     1 root     S     1396   1%   0% /sbin/rpcd -s /var/run/ubus.sock -t 30
    1     0 root     S     1340   1%   0% /sbin/procd
  687     1 root     S     1228   0%   0% /usr/sbin/odhcpd

top看运行情况,大多数进程的VSZ(虚拟内存分配)只有1.x K左右 而frpc达到了768M,也就是说极端情况下(比如代码bug造成内存泄露),所有物理内存全给了也不够用

是否某个栈的预分配空间就不小,加上多个线程乘起来就分了786M(虽然知道正常情况下不会吃这么多) 这个数字如果降到20~30M,也就是说FRPC在极端状态下吃掉30M内存,听起来合理一些吧?

Fisherworks commented 4 years ago

我参考了这篇做嵌入式的文章,写到了降低VSZ的问题 https://blog.csdn.net/tangdichao/article/details/52103656

kuoruan commented 4 years ago

这个问题可以去官方开个 issue 问问

Fisherworks commented 4 years ago

我也考虑是不是应该去官方开issue 可是琢磨下的不是官方的release文件,那玩意的尺寸好像根本装不进路由器,更别提跑起来了……