![使用 Rss 创建脚本以了解总内存消耗问题](https://linux22.com/image/1142637/%E4%BD%BF%E7%94%A8%20Rss%20%E5%88%9B%E5%BB%BA%E8%84%9A%E6%9C%AC%E4%BB%A5%E4%BA%86%E8%A7%A3%E6%80%BB%E5%86%85%E5%AD%98%E6%B6%88%E8%80%97%E9%97%AE%E9%A2%98.png)
我想创建一个脚本,打开 Firefox,从 txt 文件加载一些 URL,然后每 0.5 秒记录一些统计信息,例如 Firefox 实例数和总内存消耗(以 MB 为单位)。我希望将统计信息写入并保存在文件中。我知道如何查找内存消耗(grep /proc/"pid"/status VmRSS
),但我不知道如何每 0.5 秒执行一次,然后将其写入文件。
答案1
我会使用ps
(参见man ps
)和 Gnu sleep
(参见sleep --help
):
# A way to exit the loop - anyone (any other `$USER` process) can rm /tmp/keepgoing
# output in /tmp/logfile
touch /tmp/keepgoing
while [[ -f /tmp/keepgoing ]] ; do
# $ echo "$(date) $(date '+%N') $(ps -C firefox -o rss= )"
# Mon Nov 21 19:42:48 EST 2016 185862805 538264
echo "$(date) $(date '+%N') $(ps -C firefox -o rss= )" >>/tmp/logfile
/bin/sleep 0.5
done
在 1 个终端窗口中启动该程序,然后使用xargs
(参见man xargs
)在另一个终端窗口中输入您的 URL 列表:
xargs -n 1 /usr/bin/firefox -new-tab </tmp/list-of-URLs.txt
等到所有 Firefox 选项卡都加载完成,然后:
pkill -9 firefox
rm /tmp/keepgoing