我们运行一个
Apache Cassandra集群,每个主机在任何给定时间都有几十万个文件打开.
我们希望能够定期获取打开文件的数量并将此数字输入graphite,但是当我们在collectd
下运行lsof时,它最终需要几分钟才能完成,并且会占用过多的cpu.与此同时.
我想知道是否有一种替代和更友好的方法来获取lsof提供的相同数据,甚至是一种运行lsof的方式,它不会明显地进入cpu? (虽然我认为后一种方法可能需要比现在更长的时间来完成…不理想).
更新:
响应其中一个答案,我们已经使用了-b和-n标志.这是完整的命令,因为我在collectd下运行它:
sudo lsof -b -n -w | stdbuf -i0 -o0 -e0 wc -l