CN110134454B - 一种启动应用程序的方法及其装置 - Google Patents

一种启动应用程序的方法及其装置 Download PDF

Info

Publication number
CN110134454B
CN110134454B CN201810140118.2A CN201810140118A CN110134454B CN 110134454 B CN110134454 B CN 110134454B CN 201810140118 A CN201810140118 A CN 201810140118A CN 110134454 B CN110134454 B CN 110134454B
Authority
CN
China
Prior art keywords
memory
application program
application
container
module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810140118.2A
Other languages
English (en)
Other versions
CN110134454A (zh
Inventor
李希伟
吴连朋
夏章抓
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Juhaokan Technology Co Ltd
Original Assignee
Juhaokan Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Juhaokan Technology Co Ltd filed Critical Juhaokan Technology Co Ltd
Priority to CN201810140118.2A priority Critical patent/CN110134454B/zh
Publication of CN110134454A publication Critical patent/CN110134454A/zh
Application granted granted Critical
Publication of CN110134454B publication Critical patent/CN110134454B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及互联网技术领域,具体涉及一种启动应用程序的方法和装置,其包括:在应用程序置入到应用容器内的情况下,分别获取应用容器的内存配额和宿主机的内存容量;比较内存配额与内存容量之间的大小,并以两者中较小的值作为调整值,并根据调整值生成内存调整命令,内存调整命令用于将应用程序的内存限制值调整为与调整值的大小相一致;在启动应用程序的同时对内存调整命令进行加载。本发明有效地避免了容器发生内存溢出,其不需要对应用程序的内存限制值进行手动设置,有效地减少了用户人工设置的工作量,使其维护较为容易,且不会存在引起漏设置的现象发生。

Description

一种启动应用程序的方法及其装置
技术领域
本发明涉及互联网技术领域,具体涉及一种启动应用程序的方法以及一种启动应用程序的装置。
背景技术
随着如docker、Ixc等的容器技术在近年的快速发展,越来越多的服务端应用程序运行到了应用容器中,而对于使用Java语言的程序,其应用容器需要运行于Java虚拟机环境中,Java虚拟机包含了Java程序运行的各项参数,如最大内存、堆内存、垃圾回收机制等等。而容器技术为Java虚拟机引入了新的内存管理方式,比如管理人员在一台宿主机上启动一个应用容器时,其会根据实际的内存使用情况给该应用容器分配预定的内存配额,但是由于在Java语言的发展之初,现有的容器技术并未诞生,故运行于应用容器内的在运行时默认以宿主机的内存容量来配置内存限制值的Java程序无法同时读取应用容器中的内存配额,而应用容器的内存配额一般都会小于宿主机的内存容量;因此,Java程序在运行的时候容易会产生其占用内存值大于该应用容器的内存配额的现象,从而导致内存耗尽,进而导致容器及其内部的应用程序被关掉。
在现有技术中,为了能避免上述因内存耗尽,进而导致应用容器及其内部的应用进程被关掉的现象发生,其一般通过手动设置的方式来设置Java程序的内存限制值,来避免应用容器内存溢出的问题。但是现有技术的一个缺点就是,必须为每个运行在应用容器里的Java程序,手动设置内存限制值,由于所有应用容器的内存配额均不是固定的,当Java程序非常多的时候,手动为每个Java程序设置内存限制值的方式非常不便后期维护,容易出现配置错误。而且由于应用容器内存是可以改变的,当管理人员根据实际访问量对应用容器的内存配额进行调小后,这时如果忘了重新设置Java程序的内存限制值,就会发生内存泄漏的情况。故在现有技术采用手动设置的方式其设置工作量大,维护并不容易,且容易引起漏设置,造成内存泄漏的情况的发生。
发明内容
为克服上述缺陷,本发明的目的即在于如何在不改变应用程序运行环境的基础上,对封装在应用容器中的应用程序控制内存限额,以避免应用容器出现内存溢出的方法及其装置。
本发明的目的是通过以下技术方案来实现的:
本发明是一种启动应用程序的方法,包括:
在应用程序置入到应用容器内的情况下,分别获取所述应用容器的内存配额和宿主机的内存容量;
比较所述内存配额与所述内存容量之间的大小,以两者中较小的值作为调整值并生成携带所述调整值的内存调整命令,所述内存调整命令用于将所述应用程序的内存限制值调整为与所述调整值相一致;
启动所述应用程序且为所述应用程序加载所述内存调整命令。
在本发明中,在应用程序置入到应用容器内的情况下,分别获取所述应用容器的内存配额和宿主机的内存容量,包括:
当所述应用容器运行时,所述应用程序中的第一应用程序从所述宿主机的内存容量;
与所述第一应用程序不同的第二应用程序在所述应用容器中读取所述内存配额。
在本发明中,所述分别获取所述应用容器的内存配额和宿主机的内存容量之前包括:
当所述应用容器运行时,检测所述应用程序的运行环境参数,并通过所述运行环境参数判断所述应用程序是否置入到所述应用容器内;
若所述应用程序没有置入到所述应用容器内,则直接启动所述应用程序中的;
若所述应用程序置入到所述应用容器内,则通过所述应用程序中的第一应用程序读取所述内存容量且通过与所述第一应用程序不同的第二应用程序读取所述内存配额。
在本发明中,所述分别获取所述应用容器的内存配额和宿主机的内存容量之后还包括:
若所述应用容器的内存配额不存在,则直接启动所述应用程序。
在本发明中,所述检测应用程序的运行环境参数之前包括:
创建一个应用容器,在所述应用容器创建完成后,对所述应用容器进行初始化。
在本发明中,所述通过所述运行环境参数判断应用程序是否置入到应用容器内包括:
在所述运行环境参数中查找配置文件,若查找到所述配置文件,则应用程序置入到应用容器内;若查找不到所述配置文件,则应用程序没有置入到应用容器内。
本发明是一种启动应用程序的装置,包括:
容器内存获取模块,所述容器内存获取模块用于获取供所述应用程序运行的应用容器的内存配额;
主机内存获取模块,所述主机内存获取模块用于获取宿主机的内存容量;
调整值获取模块,所述调整值获取模块分别与所述容器内存获取模块和所述主机内存获取模块相连接,用于比较所述内存配额与所述内存容量之间的大小,并以两者中较小的值作为调整值;
调整命令生成模块,所述调整命令生成模块与所述调整值获取模块相连接,用于根据所述调整值生成内存调整命令,所述内存调整命令用于将所述应用程序的内存限制值调整为与所述调整值的大小相一致;
调整命令加载模块,所述调整命令加载模块与所述调整命令生成模块相连接,用于在应用程序启动模块中加载上所述内存调整命令;
应用程序启动模块,所述应用程序启动模块与所述调整命令加载模块相连接,用于对所述应用程序进行启动。
在本发明中,所述装置还包括:
环境参数检测模块,所述环境参数检测模块用于检测应用程序的运行环境参数;
运行环境判断模块,所述运行环境判断模块与所述环境参数检测模块相连接,用于根据检测到的运行环境参数判断所述应用程序是否置入到应用容器内,若应用程序是否置入到应用容器内,则驱动容器内存获取模块和主机内存获取模块。
在本发明中,所述装置还包括:
容器创建模块,所述容器创建模块用于对应用容器进行创建;
容器内存设定模块,所述容器内存设定模块与所述容器创建模块相连接,用于对所述应用容器的内存配额进行设定。
在本发明中,所述运行环境判断模块包括:
配置文件查找单元,所述配置文件查找单元用于在所述运行环境参数中对配置文件进行查找;
运行判断单元,所述运行判断单元与所述配置文件查找单元相连接,用于根据配置文件的查找结果,对应用程序是否置入到应用容器内进行判断。
本发明的启动应用程序的方法,其在启动应用程序之前,先对应用容器的内存配额和宿主机中内存容量比较,以较小值生成对应用程序的内存限制值进行调整的命令,并在应用程序启动时将该命令与应用程序一同进行加载,有效地避免了容器发生内存溢出,其不需要对应用程序的内存限制值进行手动设置,有效地减少了用户人工设置的工作量,使其维护较为容易,且不会存在引起漏设置的现象发生。
附图说明
为了易于说明,本发明由下述的较佳实施例及附图作详细描述。
图1为本发明方法一个实施例的工作流程示意图;
图2为本发明方法另一个实施例的工作流程示意图;
图3为本发明装置一个实施例的逻辑结构示意图;
图4为本发明装置另一个实施例的逻辑结构示意图;
图5为本发明装置中的运行环境判断模块的逻辑结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”、“顺时针”、“逆时针”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接。可以是机械连接,也可以是电连接。可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
下面以Java语言环境为例以一个实施例对本发明的一种启动应用程序的方法进行具体描述,请参阅图1,其应用程序包括Java程序,其包括:
S101.获取内存配额和内存容量
在应用程序置入到应用容器内的情况下,分别获取所述应用容器的内存配额和宿主机的内存容量;其中,宿主机的内存容量为宿主机的物理内存量;
应用程序可以包括Java程序(为了便于描述,下称第一应用程序,如demo.jar)和Java内存调整程序(为了便于描述,下称第二应用程序,如:set-jvm),在容器初始化到第一应用程序启动之前,第二应用程序从应用容器中读取内存配额,第一应用程序被配置为从宿主机的操作系统中读取内存容量,可以在保持第一应用程序运行环境的基础上,应用程序自动得到应用容器中的内存配额。
S102.确定调整值
比较所述内存配额与所述内存容量之间的大小,并以两者中较小的值作为调整值;例如:将宿主机的内存容量4096m和应用容器的内存配额1024m进行比较,将两个值中的较小值1024m作为调整值;
第一应用程序和第二应用程序之间通信交互,将内存容量传输给第二应用程序,进而判断内存容量和内容配额之间的大小;或者第三应用程序分别调用与其不同的第一应用程序和第二应用程序,分别接收内存配额和内存容量,在第三方应用程序中比较两者的大小。
S103.生成内存调整命令
根据所述调整值生成内存调整命令,所述内存调整命令用于将所述Java程序的内存限制值调整为与所述调整值的大小相一致;即生成将Java程序的内存限制值调整为1024m的命令;
S104.在启动时加载内存调整命令
在启动所述Java程序的同时对所述内存调整命令进行加载,即在启动Java程序的同时,执行将Java程序的内存限制值调整为1024m的命令。
由于Java程序自身特点限定了其默认会以宿主机的内存容量来配置其内存限制值,故在现有技术中,如宿主机的内存容量为4096m,则Java程序的内存限制值会调整为4096m,但如果此时的放置该Java程序的应用容器的内存配额仅为1024m,其容易因Java程序的内存溢出而导致Java程序被关掉,而本发明根据应用容器的内存配额而生成对应的调整值,如:应用容器的内存配额为1024m,则调整值也对应为1024m;并在Java程序启动时加载内存调整命令,使得Java程序以1024m的内存值进行运行,以保证Java程序的运行内存值不会超过应用容器的内存配额,有效地防止内存溢出,而导致Java程序被关掉的情况发生。
第二应用程序以调整值封装内存调整命令(如:java-XX:MaxRam=1024m-jardemo.jar),以内存调整命令启动第一应用程序并将调整值传递给第一应用程序,第一应用程序将调整值加载。
为了便于理解,下面以另一个实施例对本发明的一种启动应用程序的方法进行具体描述,请参阅图2,其应用程序为Java程序,其包括:
S201.创建一个应用容器
在创建一个应用容器,该应用容器用于供Java程序在其中进行运行;
S202.设定应用容器中的内存值
对所述应用容器中的内存值进行设定;应用容器中的内存配额代表着应用容器的最大内存容量;在初次创建一个应用容器后,可对应用容器中的内存配额进行设置,对于已设定有内存配额的应用容器,则可以对其应用容器中的内存配额进行修改;其中,应用容器中所设定的内存配额可以为一固定值,如1024m、2048m、4096m等,本实施例将内存配额设定为1024m为例进行说明;
而在其他实施例中,也可以不对应用容器中的内存值进行设置;若不对应用容器中的内存配额进行设置,则应用容器中的内存默认为无限制。
S203.对应用容器进行初始化
在所述应用容器创建完成后,对所述应用容器在文件系统、资源限制等环境进行初始化。
S204.检测Java程序的运行环境参数
检测Java程序的运行环境参数;由于当前应用容器一般使用cgroup配置文件来限制应用容器内存,所以在本实施例中可以通过读取cgroup配置文件来判断Java程序是否位于最大内存被限制的应用容器内。
S205.判断Java程序是否置入应用容器内
通过所述运行环境参数判断所述Java程序置入应用容器内,其具体为:在所述运行环境参数中查找配置文件,若查找到所述配置文件,则Java程序会置入应用容器内;若查找不到所述配置文件,则Java程序没有置入应用容器内。比如对cgroup配置文件进行读取,如果该文件存在则代表Java程序置入于应用容器内;如果该文件不存在,则代表Java程序没有置入于应用容器内;若Java程序置入于应用容器内,则进行步骤S206.获取内存配额和内存容量;若Java程序没有置入于应用容器内,则进行步骤S211.直接启动所述应用程序;
S206.获取内存配额和内存容量
在应用程序置入到应用容器内的情况下,分别获取所述应用容器的内存配额和宿主机的内存容量;其中,宿主机的内存容量为宿主机的物理内存量;
S207.判断内存配额是否为限定值
根据所获取到应用容器的内存配额中的数值,判断该内存配额是否为限定值;其具体为:读取cgroup配置文件中的数值,若该数值为限定值1024m,则代表Java程序位于内存配额为1024m的应用容器内,则进行步骤S208.获取调整值;若该数值为非限定值,则代表Java程序位于最大内存没有被限制的应用容器内,则进行步骤S211.直接启动所述应用程序;
S208.确定调整值
比较所述内存配额与所述内存容量之间的大小,并以两者中较小的值作为调整值;例如:将宿主机的内存容量4096m和容器的内存配额1024m进行比较,将两个值中的较小值1024m作为调整值;
S209.生成内存调整命令
根据所述调整值生成内存调整命令,所述内存调整命令用于将所述应用程序的内存限制值调整为与所述调整值的大小相一致;即生成将应用程序的内存限制值调整为1024m的命令;
S210.在启动时加载内存调整命令
在启动所述应用程序的同时对所述内存调整命令进行加载,即在启动应用程序的同时,执行将应用程序的内存限制值调整为1024m的命令。
S211.直接启动Java程序
Java程序在启动时,会自动获取宿主机内存4096m作为Java程序的内存限制值。
在步骤S209或S210对Java程序启动后,如果用户需要对应用容器中的内存值进行修改,则进行步骤S202.设定应用容器中的内存值;用户可根据实际的使用情况将内存配额进行修改,重新设定为2048m或其他数值;在对应用容器中的内存值完成修改后,系统会自动按顺序进行剩余的步骤。
下面以一个实施例对本发明一种启动应用程序的装置进行描述,请参看图3,其应用程序为Java程序,该Java程序与启动应用程序的装置均设置于Java虚拟机中,该Java虚拟机是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的;
本发明的装置包括:
容器内存获取模块301,所述容器内存获取模块301用于获取供所述应用程序运行的应用容器的内存配额,应用容器中的内存配额代表着应用容器内可供应用程序使用的最大内存量;
主机内存获取模块302,所述主机内存获取模块302用于获取宿主机的内存容量,宿主机的内存容量即为宿主机的物理内存值;
调整值获取模块303,所述调整值获取模块303分别与所述容器内存获取模块301和所述主机内存获取模块302相连接,用于比较所述内存配额与所述内存容量之间的大小,并以两者中较小的值作为调整值;
调整命令生成模块304,所述调整命令生成模块304与所述调整值获取模块303相连接,用于根据所述调整值生成内存调整命令,所述内存调整命令用于将所述应用程序的内存限制值调整为与所述调整值的大小相一致;
调整命令加载模块305,所述调整命令加载模块305与所述调整命令生成模块304相连接,用于在应用程序启动模块306中加载上所述内存调整命令;
应用程序启动模块306,所述应用程序启动模块306与所述调整命令加载模块305相连接,用于对所述应用程序进行启动。
请参看图4,在本发明中,所述装置还包括:
容器创建模块307,所述容器创建模块307用于对应用容器进行创建;
容器内存设定模块308,所述容器内存设定模块308与所述容器创建模块307和环境参数检测模块309相连接,用于对所述应用容器的内存配额进行设定,并在设定完成后驱动环境参数检测模块309;
环境参数检测模块309,所述环境参数检测模块309用于检测Java程序的运行环境参数;该运行环境参数包括:文件系统、资源限制等环境;
运行环境判断模块310,所述运行环境判断模块310与所述环境参数检测模块309相连接,用于根据检测到的运行环境参数判断所述应用程序是否置入到应用容器内,若应用程序是否置入到应用容器内,则驱动容器内存获取模块301和主机内存获取模块302;
请参看图5,在本发明中,所述运行环境判断模块310包括:
配置文件查找单元311,所述配置文件查找单元311用于在所述运行环境参数中对配置文件进行查找;由于当前应用容器一般使用cgroup配置文件来限制应用容器的内存配额,所以在本实施例中可以通过查找cgroup配置文件来判断Java程序是否位于最大内存被限制的应用容器内;
运行判断单元312,所述运行判断单元312与所述配置文件查找单元311相连接,用于根据配置文件的查找结果,对Java程序是否会在应用容器内运行进行判断;若查找到所述配置文件,则Java程序置入到应用容器内;若查找不到所述配置文件,则Java程序没有置入到应用容器内。
在本说明书的描述中,参考术语“一个实施方式”、“一些实施方式”、“示意性实施方式”、“示例”、“具体示例”、或“一些示例”等的描述意指结合实施方式或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施方式或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施方式或示例中以合适的方式结合。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种启动应用程序的方法,其特征在于,包括:
在应用程序置入到应用容器内的情况下,分别获取所述应用容器的内存配额和宿主机的内存容量,其中,所述内存配额为所述应用程序中的第二应用程序所读取得到;
比较所述内存配额与所述内存容量之间的大小,以两者中较小的值作为调整值并生成携带所述调整值的内存调整命令,所述内存调整命令用于将所述应用程序的内存限制值调整为与所述调整值相一致;
启动所述应用程序且为所述应用程序加载所述内存调整命令,以使所述应用程序以所述调整值进行运行。
2.根据权利要求1所述的启动应用程序的方法,其特征在于,在应用程序置入到应用容器内的情况下,分别获取所述应用容器的内存配额和宿主机的内存容量,包括:
当所述应用容器运行时,所述应用程序中的第一应用程序读取所述宿主机的内存容量;
与所述第一应用程序不同的第二应用程序在所述应用容器中读取所述内存配额。
3.根据权利要求1所述的启动应用程序的方法,其特征在于,所述分别获取所述应用容器的内存配额和宿主机的内存容量之前包括:
当所述应用容器运行时,检测所述应用程序的运行环境参数,并通过所述运行环境参数判断所述应用程序是否置入到所述应用容器内;
若所述应用程序没有置入到所述应用容器内,则直接启动所述应用程序;
若所述应用程序置入到所述应用容器内,则通过所述应用程序中的第一应用程序读取所述内存容量且通过与所述第一应用程序不同的第二应用程序读取所述内存配额。
4.根据权利要求1-3任一项所述的启动应用程序的方法,其特征在于,所述分别获取所述应用容器的内存配额和宿主机的内存容量之后还包括:
若所述应用容器的内存配额不存在,则直接启动所述应用程序。
5.根据权利要求3所述的启动应用程序的方法,其特征在于,所述检测所述应用程序的运行环境参数之前包括:
创建一个应用容器,在所述应用容器创建完成后,对所述应用容器进行初始化。
6.根据权利要求3所述的启动应用程序的方法,其特征在于,所述通过所述运行环境参数判断应用程序是否置入到应用容器内包括:
在所述运行环境参数中查找配置文件,若查找到所述配置文件,则应用程序置入到应用容器内;若查找不到所述配置文件,则应用程序没有置入到应用容器内。
7.一种启动应用程序的装置,其特征在于,包括:
容器内存获取模块,所述容器内存获取模块用于获取供所述应用程序运行的应用容器的内存配额,所述内存配额为所述应用程序中的第二应用程序所读取得到;
主机内存获取模块,所述主机内存获取模块用于获取宿主机的内存容量;
调整值获取模块,所述调整值获取模块分别与所述容器内存获取模块和所述主机内存获取模块相连接,用于比较所述内存配额与所述内存容量之间的大小,并以两者中较小的值作为调整值;
调整命令生成模块,所述调整命令生成模块与所述调整值获取模块相连接,用于根据所述调整值生成内存调整命令,所述内存调整命令用于将所述应用程序的内存限制值调整为与所述调整值的大小相一致;
调整命令加载模块,所述调整命令加载模块与所述调整命令生成模块相连接,用于在应用程序启动模块中加载上所述内存调整命令;
应用程序启动模块,所述应用程序启动模块与所述调整命令加载模块相连接,用于对所述应用程序进行启动,并为所述应用程序加载所述内存调整命令,以使所述应用程序以所述调整值进行运行。
8.根据权利要求7所述的启动应用程序的装置,其特征在于,所述装置还包括:
环境参数检测模块,所述环境参数检测模块用于检测应用程序的运行环境参数;
运行环境判断模块,所述运行环境判断模块与所述环境参数检测模块相连接,用于根据检测到的运行环境参数判断所述应用程序是否置入到应用容器内,若应用程序是否置入到应用容器内,则驱动容器内存获取模块和主机内存获取模块。
9.根据权利要求8所述的启动应用程序的装置,其特征在于,所述装置还包括:
容器创建模块,所述容器创建模块用于对应用容器进行创建;
容器内存设定模块,所述容器内存设定模块与所述容器创建模块相连接,用于对所述应用容器的内存配额进行设定。
10.根据权利要求9所述的启动应用程序的装置,其特征在于,所述运行环境判断模块包括:
配置文件查找单元,所述配置文件查找单元用于在所述运行环境参数中对配置文件进行查找;
运行判断单元,所述运行判断单元与所述配置文件查找单元相连接,用于根据配置文件的查找结果,对应用程序是否置入到应用容器内进行判断。
CN201810140118.2A 2018-02-09 2018-02-09 一种启动应用程序的方法及其装置 Active CN110134454B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810140118.2A CN110134454B (zh) 2018-02-09 2018-02-09 一种启动应用程序的方法及其装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810140118.2A CN110134454B (zh) 2018-02-09 2018-02-09 一种启动应用程序的方法及其装置

Publications (2)

Publication Number Publication Date
CN110134454A CN110134454A (zh) 2019-08-16
CN110134454B true CN110134454B (zh) 2022-06-14

Family

ID=67568083

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810140118.2A Active CN110134454B (zh) 2018-02-09 2018-02-09 一种启动应用程序的方法及其装置

Country Status (1)

Country Link
CN (1) CN110134454B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111552908A (zh) * 2020-04-30 2020-08-18 深信服科技股份有限公司 终端、系统和应用程序的运行方法
CN111949377B (zh) * 2020-08-25 2021-08-31 深圳市广通软件有限公司 Web中间件的jvm参数优化方法、装置、服务器及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104216909A (zh) * 2013-06-04 2014-12-17 腾讯科技(深圳)有限公司 网页数据处理方法及处理装置
CN106656980A (zh) * 2016-10-21 2017-05-10 郑州云海信息技术有限公司 一种自动化配置Docker容器访问控制的方法
CN107450989A (zh) * 2017-09-26 2017-12-08 中国科学院声学研究所 一种嵌入式平台及动态调控应用资源的方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102479155B (zh) * 2010-11-30 2014-07-02 国际商业机器公司 用于网络应用服务器系统的内存过载管理的方法和系统
CN102831068B (zh) * 2011-06-13 2016-04-06 阿里巴巴集团控股有限公司 一种内存操作记录的处理方法及装置
WO2012167529A1 (zh) * 2011-10-24 2012-12-13 华为技术有限公司 在Linux容器中启动应用程序的方法和系统
CN103617129B (zh) * 2013-12-10 2017-10-24 中科创达软件股份有限公司 一种内存处理的方法及装置
CN103645935B (zh) * 2013-12-17 2017-01-18 山东中创软件工程股份有限公司 一种国产环境下jvm参数调整装置和方法
CN105429938B (zh) * 2015-10-23 2018-11-06 深圳前海达闼云端智能科技有限公司 一种资源配置方法及装置
CN105468362B (zh) * 2015-11-17 2019-03-08 广州杰赛科技股份有限公司 应用部署方法和云计算系统
CN105302579B (zh) * 2015-11-27 2019-05-21 北京奇虎科技有限公司 一种系统内存的占用方法和装置
CN105515864B (zh) * 2015-12-11 2019-05-21 深圳市中润四方信息技术有限公司 容器资源自适应调整方法及系统
CN106933670B (zh) * 2015-12-29 2022-01-25 航天信息股份有限公司 一种动态管理应用程序内存的方法
US9766915B1 (en) * 2016-03-23 2017-09-19 Parallels IP Holdings GmbH Method for creation of application containers inside OS containers
CN106484529B (zh) * 2016-09-12 2019-05-14 Oppo广东移动通信有限公司 终端的内存调整方法及终端
CN107545060A (zh) * 2017-08-31 2018-01-05 聚好看科技股份有限公司 一种redis主从全量同步数据的限速方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104216909A (zh) * 2013-06-04 2014-12-17 腾讯科技(深圳)有限公司 网页数据处理方法及处理装置
CN106656980A (zh) * 2016-10-21 2017-05-10 郑州云海信息技术有限公司 一种自动化配置Docker容器访问控制的方法
CN107450989A (zh) * 2017-09-26 2017-12-08 中国科学院声学研究所 一种嵌入式平台及动态调控应用资源的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
如何设置Docker容器中Java应用的内存限制;阿里百川;《http://www.voidcn.com/article/p-neuqtrpi-bne.html》;20160403;第1-5页 *

Also Published As

Publication number Publication date
CN110134454A (zh) 2019-08-16

Similar Documents

Publication Publication Date Title
JP5139987B2 (ja) 拡張可能メタデータ
CN110474896B (zh) 基于Modbus协议标准的数据通信方法及相关设备
US10599413B2 (en) Method and device for identifying file
US9164899B2 (en) Administering thermal distribution among memory modules of a computing system
US8161471B2 (en) Utility for optimizing required memory for distribution in embedded systems
US9542170B2 (en) Development tool for footprint reduction
WO2021164367A1 (zh) 一种容器镜像的提供方法、加载方法及相关设备和系统
CN110134454B (zh) 一种启动应用程序的方法及其装置
CN110825399B (zh) 一种应用程序的部署方法及装置
CN106909362A (zh) Bmc固件生成的方法和装置、bmc系统启动的方法和装置
US20120166744A1 (en) Memory management method, computer system, and storage medium having program stored thereon
CN108241516B (zh) 嵌入式系统程序加载方法、装置、计算机设备和存储介质
JP6548379B2 (ja) 情報処理装置およびその制御方法、並びにプログラム
US7565385B2 (en) Embedded garbage collection
KR102090977B1 (ko) 정보 처리장치 및 리소스 관리방법
KR100493893B1 (ko) 자바 프로그램에서 클래스 로딩 과정을 단축시키는 시스템및 방법
US9244672B2 (en) Optimization utility for developing embedded systems
CN112214413A (zh) 一种应用程序的测试方法、装置、设备及存储介质
CN110806891A (zh) 嵌入式设备软件版本的生成方法及装置
CN114048465B (zh) 一种堆栈状态检测方法、装置、设备及存储介质
US10671526B2 (en) Electronic computing device, method for adjusting the trigger mechanism of a garbage collection function, and non-transitory computer readable storage medium thereof
US9378129B2 (en) Information processing apparatus, control method, and storage medium for memory management and dump processing based on memory usage
TWI832201B (zh) 電腦執行的方法及計算系統
CN107153554B (zh) 信息处理装置和库管理方法
US20230088364A1 (en) Dynamically Switching A Software Service Between Stateful Mode And Stateless Mode

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant