Program comprehension is one of the most important applications in decompilation. The more abstract the decompilation result the better it is understood. Intrinsic function is introduced by a compiler to reduce the ov...Program comprehension is one of the most important applications in decompilation. The more abstract the decompilation result the better it is understood. Intrinsic function is introduced by a compiler to reduce the overhead of a function call and is inlined in the code where it is called. When analyzing the decompiled code with lots of inlined intrinsic functions, reverse engineers may be confused by these detailed and repeated operations and lose the goal. In this paper, we propose a method based graph isomorphism to detect intrinsic function on the CFG (Control Flow Graph) of the target function first. Then we identify the boundary of the intrinsic function, determine the parameter and return value and reduce the intrinsic function to a single function call in the disassembled program. Experimental results show that our method is more efficient at reducing intrinsic functions than the state-of-art decompilers such as Hex-Rays, REC and RD (Retargetable Decompiler).展开更多
Container-based virtualization techniques are becoming an alternative to traditional virtual machines,due to less overhead and better scaling.As one of the most widely used open-source container orchestration systems,...Container-based virtualization techniques are becoming an alternative to traditional virtual machines,due to less overhead and better scaling.As one of the most widely used open-source container orchestration systems,Kubernetes provides a built-in mechanism,that is,horizontal pod autoscaler(HPA),for dynamic resource provisioning.By default,scaling pods only based on CPU utilization,a single performance metric,HPA may create more pods than actually needed.Through extensive measurements of a containerized n-tier application benchmark,RUBBoS,we find that excessive pods consume more CPU and memory and even deteriorate response times of applications,due to interference.Furthermore,a Kubernetes service does not balance incoming requests among old pods and new pods created by HPA,due to stateful HTTP.In this paper,we propose a bi-metric approach to scaling pods by taking into account both CPU utilization and utilization of a thread pool,which is a kind of important soft resource in Httpd and Tomcat.Our approach collects the utilization of CPU and memory of pods.Meanwhile,it makes use of ELBA,a milli-bottleneck detector,to calculate queue lengths of Httpd and Tomcat pods and then evaluate the utilization of their thread pools.Based on the utilization of both CPU and thread pools,our approach could scale up less replicas of Httpd and Tomcat pods,contributing to a reduction of hardware resource utilization.At the same time,our approach leverages preStop hook along with liveness and readiness probes to relieve load imbalance among old Tomcat pods and new ones.Based on the containerized RUBBoS,our experimental results show that the proposed approach could not only reduce the usage of CPU and memory by as much as 14%and 24%when compared with HPA,but also relieve the load imbalance to reduce average response time of requests by as much as 80%.Our approach also demonstrates that it is better to scale pods by multiple metrics rather than a single one.展开更多
文摘Program comprehension is one of the most important applications in decompilation. The more abstract the decompilation result the better it is understood. Intrinsic function is introduced by a compiler to reduce the overhead of a function call and is inlined in the code where it is called. When analyzing the decompiled code with lots of inlined intrinsic functions, reverse engineers may be confused by these detailed and repeated operations and lose the goal. In this paper, we propose a method based graph isomorphism to detect intrinsic function on the CFG (Control Flow Graph) of the target function first. Then we identify the boundary of the intrinsic function, determine the parameter and return value and reduce the intrinsic function to a single function call in the disassembled program. Experimental results show that our method is more efficient at reducing intrinsic functions than the state-of-art decompilers such as Hex-Rays, REC and RD (Retargetable Decompiler).
基金The research has been supported by a grant from NSFC(Grant No.61702063)Fundamental Science and by a grant from Frontier Technology Research Projects of Chongqing(cstc2017jcyjAX0089)China Scholarship Council(201708505099).
文摘Container-based virtualization techniques are becoming an alternative to traditional virtual machines,due to less overhead and better scaling.As one of the most widely used open-source container orchestration systems,Kubernetes provides a built-in mechanism,that is,horizontal pod autoscaler(HPA),for dynamic resource provisioning.By default,scaling pods only based on CPU utilization,a single performance metric,HPA may create more pods than actually needed.Through extensive measurements of a containerized n-tier application benchmark,RUBBoS,we find that excessive pods consume more CPU and memory and even deteriorate response times of applications,due to interference.Furthermore,a Kubernetes service does not balance incoming requests among old pods and new pods created by HPA,due to stateful HTTP.In this paper,we propose a bi-metric approach to scaling pods by taking into account both CPU utilization and utilization of a thread pool,which is a kind of important soft resource in Httpd and Tomcat.Our approach collects the utilization of CPU and memory of pods.Meanwhile,it makes use of ELBA,a milli-bottleneck detector,to calculate queue lengths of Httpd and Tomcat pods and then evaluate the utilization of their thread pools.Based on the utilization of both CPU and thread pools,our approach could scale up less replicas of Httpd and Tomcat pods,contributing to a reduction of hardware resource utilization.At the same time,our approach leverages preStop hook along with liveness and readiness probes to relieve load imbalance among old Tomcat pods and new ones.Based on the containerized RUBBoS,our experimental results show that the proposed approach could not only reduce the usage of CPU and memory by as much as 14%and 24%when compared with HPA,but also relieve the load imbalance to reduce average response time of requests by as much as 80%.Our approach also demonstrates that it is better to scale pods by multiple metrics rather than a single one.