我是否可以看到当前python应用程序使用的处理器使用量(最大值的百分比)?
场景:我的主机允许我运行我的应用程序,只要它不消耗超过X%的CPU功率,所以我希望它"关注自己"并放慢速度.那么我怎么知道应用程序使用了多少CPU?
目标平台是*nix,但是我想在Win主机上也这样做.
我mnesia overloaded主要使用async_dirty查询和ram_copies表时有时会收到错误消息.因此,要了解发生了什么,我想获得有关mnesia状态的更多信息,例如每秒查询数或查询队列的大小.我搜索了很多,发现了两种可能的方法.
第一个是mnesia:system_info可以返回当前事务列表的函数.但它似乎无法提供有关非事务性查询的信息.
第二个是订阅mnesia事件,但是使用这种方式需要一些活动的后台处理以及手动订阅每个表事件.
是否有更好的方法来获取此信息?
我们已经实现了对Netty事件循环队列的监控,以便了解我们的一些Netty模块的问题.监视器使用的io.netty.util.concurrent.SingleThreadEventExecutor#pendingTasks方法适用于大多数模块,但对于每秒处理几千个HTTP请求的模块,它似乎挂起或非常慢.我现在意识到文档严格规定这可能是一个问题,我觉得很蹩脚......所以我正在寻找另一种方法来实现这个监视器.
你可以在这里看到旧代码:https: //github.com/outbrain/ob1k/blob/6364187b30cab5b79d64835131d9168c754f3c09/ob1k-core/src/main/java/com/outbrain/ob1k/common/metrics/NettyQueuesGaugeBuilder.java
public static void registerQueueGauges(final MetricFactory factory, final EventLoopGroup elg, final String componentName) {
int index = 0;
for (final EventExecutor eventExecutor : elg) {
if (eventExecutor instanceof SingleThreadEventExecutor) {
final SingleThreadEventExecutor singleExecutor = (SingleThreadEventExecutor) eventExecutor;
factory.registerGauge("EventLoopGroup-" + componentName, "EventLoop-" + index, new Gauge<Integer>() {
@Override
public Integer getValue() {
return singleExecutor.pendingTasks();
}
});
index++;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,是否有更好的方法来监控队列大小?
这可能是一个非常有用的指标,因为它可用于理解延迟,并且在某些情况下也可用于施加背压.
我们通过云服务提供商(CSP)进行Azure订阅,这会对我们在Azure中获取和查看的内容产生一些限制.不过,我们可以看到每个应用服务计划的 CPU和内存使用情况.
对于该计划下的特定应用服务,我们如何才能看到相同的内容?
如果我看到计划的CPU /内存利用率异常,我该如何判断哪个App Service导致它?
有没有办法找出什么时候在局域网中谁有人插入到USB端口的pendrive?以编程方式(最好在C#中)或通过某种工具.基本上我想象一个客户端应用程序位于每个终端上并监视USB端口并将信息发送到服务器.
a.)我可以获取正在复制的文件的详细信息吗?b.)没有客户申请,有没有办法做到这一点?
编辑
我不想完全禁用USB端口.它需要有基础.基本上只是希望局域网上的用户负责地共享数据,并且知道所传输的任何数据都会受到监控和记录,以后可能会被质疑.
调试HTTP很简单,你可以使用各种工具(比如Fiddler).那么SMTP呢?
如何调试SMTP通信?
我的目标系统是Windows.
建议的工具:
我有一堆长期运行的Ruby脚本,我想确保每隔30秒左右就会出现这些脚本.
我通常只是简单地启动命令 ruby script-name.rb
如何配置monit来管理这些脚本?
更新:我试图按照这个方法创建一个包装脚本然后启动ruby进程,但它似乎没有创建.pid文件并输入'./wrapper-script stop'什么也没做:/
我应该在ruby中编写pid还是使用包装器脚本来创建monit所需的pid?
我目前正在对大量文本进行操作(在一个文件中大约290MB的纯文本).在将其导入Mathematica 8之后,我现在开始将其分解为小写单词等,因此我可以开始进行文本分析.
问题是这些过程需要很长时间.有没有办法通过Mathematica监控这些操作?对于带变量的操作,我使用了ProgressIndicator等.但这是不同的.我搜索文档和StackOverflow没有发现类似的东西.
在下面,我想监视Cases []命令的过程:
input=Import["/users/USER/alltext.txt"];
wordList=Cases[StringSplit[ToLowerCase[input],Except[WordCharacter]],Except[""]];
Run Code Online (Sandbox Code Playgroud) 我已经读过Spark没有Prometheus作为预包装的水槽之一.所以我发现这篇关于如何使用prometheus监控Apache Spark的帖子.
但我发现很难理解和成功,因为我是初学者,这是第一次使用Apache Spark.
我不能得到的第一件事是我需要做什么?
我需要更改metrics.properties
我应该在应用程序中添加一些代码还是?
我没有得到它的步骤...
我正在做的事情是:更改链接中的属性,编写此命令:
Run Code Online (Sandbox Code Playgroud)--conf spark.metrics.conf=<path_to_the_file>/metrics.properties
还有什么我需要做的来看看Apache spark的指标?
我还发现了这个链接: 使用Prometheus监控Apache Spark
https://argus-sec.com/monitoring-spark-prometheus/
但我也无法用它做到......
我已经读过有一种方法可以从Graphite获取指标,然后将它们导出到Prometheus,但我找不到一些有用的文档.
Splunk 有transaction可以duration在按 id 分组的日志之间生成的命令:
2020-01-01 12:12 event=START id=1
2020-01-01 12:13 event=STOP id=1
Run Code Online (Sandbox Code Playgroud)
正如它所描述的
如何计算Datadog中事件之间的持续时间?
monitoring ×10
java ×2
apache-spark ×1
azure ×1
c# ×1
cpu-usage ×1
datadog ×1
debugging ×1
erlang ×1
event-loop ×1
logging ×1
memory ×1
mnesia ×1
monit ×1
netty ×1
prometheus ×1
python ×1
ruby ×1
smtp ×1
splunk-query ×1
text ×1
usb ×1
windows ×1