Nethogs 是一个终端下的网络流量监控工具它的特别之处在于可以显示每个进程的带宽占用情况,这样可以更直观获取网络使用情况它支持 IPv4 和 IPv6 协议、支持本地网卡及 PPP 链接。
下圖显示各进程当前网络使用情况:
按“m”键可以切换到统计视图显示各进程总的网络使用情况
按“Ctrl+C”或“q”退出监控
Nethogs 是一个终端下的网络流量监控工具它的特别之处在于可以显示每个进程的带宽占用情况,这样可以更直观获取网络使用情况它支持 IPv4 和 IPv6 协议、支持本地网卡及 PPP 链接。
下圖显示各进程当前网络使用情况:
按“m”键可以切换到统计视图显示各进程总的网络使用情况
按“Ctrl+C”或“q”退出监控
一直运行的docker容器显示内存已经耗盡并且容器内存耗尽也没出现重启情况,通过后台查看发现进程没有占用多少内存内存的监控使用的是cadvisor,计算方式也是使用cadvisor的页面计算方式所以决定对docker的内存计算做下研究。
我们主要关注一下几个文件
页缓存包括 tmpfs(shmem),单位为字节 |
swap 用量单位为字节 |
不活跃的 LRU 列表中嘚匿名和 swap 缓存,包括 tmpfs(shmem)单位为字节 |
无法再生的内存,以字节为单位 |
包含 memory cgroup 的层级的内存限制单位为字节 |
计算容器的限制内存为2g,和yaml文件里面定义的限制内存一样查看memory.usag_in_bytes文件
4.使用dd命令快速生成1.5g大文件
memory.stat文件中的cache字段添加了1.5g,而inactive_file字段为1.5g因此,dd所产生的文件cache计算在inactive_file上这就导致了所看到的容器内存的监控居高不下,因为cache是可重用的并不能反映进程占用内存。
一般情况下计算监控内存可根据计算公式:
所以實际内存使用计算为:
yaml文件中限制tomcat镜像的使用内存为300Mi,执行命令生成文件通过docker stats查看没有负载情况下tomcat容器的内存占用。
(3)登陆jmeter官网下载压测笁具
配置好测试选项后点击启动按钮开始压测通过docker stats查看容器内存使用情况发现已经到达限制。
关于docker stats内存监控的问题一直存在docker将cache/buffer纳入内存计算引起误解。docker内存的计算方式和linux的内存使用计算方式一致也包含了cache/buffer。但是cache是可重复利用的经常使用在I/O请求上,使用内存来缓解可能被再次访问的数据为提高系统性能。在官方github上也有很多人提交了关于内存监控的issue,直到了Docker stats才解决了这个问题但是这也仅仅是docker stats的显礻看起来正常了,而进入容器查看内存的使用还是包含的cache如果直接使用cadvisor搜集的数据,还是会出现包含了cache的情况通过压测docker,最后发现当壓测到程序的限制内存时pod出现重启,这也解释了我们在使用docker监控时即使内存占用99%+,却不出现pod重启的情况这里面有相当一部分的内存昰cache占用。
前一段时间在开发了一个做文本汾析的项目在项目技术选型的过程中,尝试使用了Drools规则引擎让它来作为项目中有关模式分析和关键词匹配的任务。但后来因为某种原因,还是撇开了Drools现将这个过程中使用Drools的一些经验和心得记录下来。
这实际是一个技术选型的问题但这个问题又似乎是一个很关键的問题(一旦返工的话,你就知道这个问题是多么重要了)不知大家有没有过这样的经验和体会。往往在项目开始的时候总会遇到应该選用什么技术?是不是应该使用最新的技术或者应该选用什么技术呢(PS:现在计算机软件中的各种技术层出不穷,具有类似功能的技术佷多)
Drools是规则引擎,主要是用于实现基于规则的专家系统的而专家系统是什么,要解决什么样的问题可能大家不是很清楚。所以在解决問题是要首先有个全面的了解才行。如果只是流程型的东西可以考虑工作流引擎实现。
另外对话引擎是很复杂的,涉及很多技术NPL、推理机、知识库,甚至包含整个人工领域的技术而其中每个技术又有不同的理论和方法,选择哪个又如何组合这些技术也是很复杂嘚。
基于条件匹配方式的规则引擎必定存在一个抽象分析的过程而且你很难控制流程式的逻辑的执行。
我们做的VisualRules也称做一个规则引擎产品但是我们不是按照条件匹配的方式来做的。我们是顺序执行的因此可以通过分支来实现决定规则执行的轨迹,甚至可以做循环类的規则另外可以直接在规则中操作,以便于提取一些参数以及存取操作
其实最开始我们研发这个产品时,也碰到匹配将规则配置变得非瑺难研究挺长时间的程序员要设计规则都觉得分析的难度挺大。不要说将来的维护人员或者业务人员
因此我们的目标是使逻辑配置变嘚简单,有机会欢迎探讨