linux消耗ram内存吗,linux - 释放Ubuntu 8.04服务器上的内存(RAM) - Ubuntu问答

问题描述

我在带有某些轻量级服务器应用程序的Slicehost虚拟服务器上运行了Ubuntu 8.04-apache22,svnserve,mysql和proftpd。唯一严重的服务限制是RAM-我要支付256MB。

我注意到,如果让系统运行几天/几周,则可用RAM的数量会缓慢下降,此后不久将使用页面文件。例如,重新启动后,我可能有60%的可用RAM,第二天可能是55%,依此类推。

total used free shared buffers cached

Mem: 256 114 141 0 3 50

-/+ buffers/cache: 61 194

Swap: 511 0 511

如何防止可用内存量减少?

编辑:这是我的ps -aux列出了最大的内存使用者。我省略了所有系统进程。我可以看到apache和mysql占据了最大的内存使用率。

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

root 1369 0.0 0.3 16844 952 ? S

syslog 2110 0.0 0.2 12288 748 ? Ss 00:10 0:00 /sbin/syslogd -u syslog

root 2131 0.0 0.2 8128 588 ? S 00:10 0:00 /bin/dd bs 1 if /proc/kmsg of /var/run/klogd/kmsg

klog 2133 0.0 0.4 4516 1304 ? Ss 00:10 0:00 /sbin/klogd -P /var/run/klogd/kmsg

root 2154 0.0 0.4 50904 1152 ? Ss 00:10 0:00 /usr/sbin/sshd

root 2211 0.0 0.2 3932 592 ? S 00:10 0:00 /bin/sh /usr/bin/mysqld_safe

mysql 2253 0.0 8.8 161940 23252 ? Sl 00:10 0:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mys

root 2254 0.0 0.2 3836 604 ? S 00:10 0:00 logger -p daemon.err -t mysqld_safe -i -t mysqld

proftpd 2340 0.0 0.5 63000 1504 ? Ss 00:10 0:00 proftpd: (accepting connections)

root 2356 0.0 0.3 18608 964 ? Ss 00:10 0:00 /usr/sbin/cron

root 2384 0.0 0.3 83360 892 ? Ss 00:10 0:00 svnserve -d -r /etc/svn/svn-rep-01

root 2387 0.0 3.5 194628 9220 ? Ss 00:10 0:00 /usr/sbin/apache2 -k start

root 2409 0.0 0.2 3852 576 tty1 Ss+ 00:10 0:00 /sbin/getty 38400 tty1

root 2410 0.0 0.5 15252 1444 ? Sl 00:10 0:00 /usr/lib/ruby/gems/1.8/gems/passenger-2.0.2/ext/apache2/ApplicationPoolServerExecutable 0 /us

www-data 2411 0.0 3.4 195880 9100 ? S 00:10 0:00 /usr/sbin/apache2 -k start

www-data 2412 0.0 7.3 205532 19400 ? S 00:10 0:00 /usr/sbin/apache2 -k start

www-data 2413 0.0 3.3 195620 8824 ? S 00:10 0:00 /usr/sbin/apache2 -k start

www-data 2414 0.0 3.4 195880 9080 ? S 00:10 0:00 /usr/sbin/apache2 -k start

www-data 2415 0.0 3.4 195888 9056 ? S 00:10 0:00 /usr/sbin/apache2 -k start

root 2416 0.0 2.4 43448 6512 ? Sl 00:10 0:00 Passenger spawn server

www-data 2437 0.0 7.7 208116 20248 ? S 00:48 0:00 /usr/sbin/apache2 -k start

www-data 2519 0.0 3.3 195644 8820 ? S 02:12 0:00 /usr/sbin/apache2 -k start

root 3026 0.0 1.1 67960 2892 ? Ss 20:53 0:00 sshd: dv [priv]

dv 3028 0.0 0.6 67960 1700 ? S 20:53 0:00 sshd: dv@pts/0

dv 3029 0.1 0.8 19392 2304 pts/0 Ss 20:53 0:00 -bash

dv 3041 0.0 0.4 15056 1092 pts/0 R+ 20:54 0:00 ps -aux

总的来说,我要感谢每个人的深思熟虑的回答,由于每个人都有一些有用的信息,因此很难选择最好的。

我将研究转向lighthttpd或nginx,或者至少减少apache的MaxClients参数。

最佳答案

您会注意到”cache”正在消耗其中的一些。

这只是磁盘读/写被缓存,您基本上可以假定它是免费的,因为一旦有更重要的需求,它将被转储掉。

它使磁盘IO更快。 🙂

目前,我的盒子上有2G的磁盘缓存,可以让一切变得更快。

“free”是不良的内存分析工具。我发现”htop”是一个更加实用的整体系统管理工具,它既提供了内存使用的实用表示形式,又提供了探索过程的实用方式。

像这样,更漂亮:

1 [||||| 5.0%] Tasks: 156 total, 2 running

2 [||| 2.5%] Load average: 0.29 0.30 0.31

Mem[||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 1182/3967MB] Uptime: 5 days, 16:25:36

Swp[|| 37/2000MB]

Mem:3967M used:1182M buffers:0M cache:1952M

(如果您想知道正常运行时间很短。那就是一台笔记本电脑)

许多人可能会提供否定缓存的方法,以使东西不再掉用,但这或多或少毫无意义。最终您将要做的就是降低性能,除非您的程序确实占用大量内存,但是每隔几天仅密集运行一次,这样当它不密集运行时就被换出,并且当它启动时,您就无法等待〜.5秒将其从磁盘交换回内存。

我个人想不出符合这些条件的任何优秀程序。耸耸肩

编写内核的人员或多或少地知道他们在该部门的工作,除非您确定自己知道更多,否则我相信他们的判断。

正如@Paul Betts所说,切换到lighttpd可能会帮助您节省一些时间。取决于您在做什么,总会有一些权衡。

我在vps上使用它。仅具有96M的内存和63M的交换,并且它们仅分别使用26M(无笑话)和35M。那里也有一个数据库在运行。 (Postgres,但并未真正使用)

次佳答案

忽略第一行。重要数字在“-/+缓冲区/缓存”行上。 Linux将清除高速缓存和缓冲区,以便为进程腾出空间。

我的Debian服务器通常在第一行显示2至10 MB的可用空间。第二行显示我有50 MB的可用空间。 (系统上总共有256个内存)

您的电话号码看起来不错。不要清除缓冲区/缓存。您有足够多的可用内存。

现在,如果没有足够的可用内存来缓存,则系统将运行缓慢。如果您开始使用大量交换功能,则在投放网页时会遇到问题。

参考资料

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/333429.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 读取集合到流中_Java 10:将流收集到不可修改的集合中

java 读取集合到流中Java 10引入了几种新方法来促进不可修改集合的创建。 List.copyOf &#xff0c; Set.copyOf和Map.copyOf方法从现有实例创建新的集合实例。 例如&#xff1a; List<String> modifiable Arrays.asList("foo", "bar"); List<…

Servlet 组件相关的接口、抽象类关系图

注&#xff1a; ServletConfig 依赖于 Servlet HttpServletResponse 继承自 ServletResponse HttpServlet 实现自 HttpServletResponse 和 HttpServletRequest

java6 已安装更高版本_Java 10及更高版本的思考

java6 已安装更高版本大家好 Java 10于2018年3月20日发布。我认为许多软件团队将阻止升级。 从Java 8到Java 9的专业人员人数可能还更少。为什么会这样&#xff0c;原因是传统的障碍以及对应用程序服务器&#xff0c;框架甚至是云原生容器的依赖。 例如&#xff0c;如果您在等待…

linux 命令api,linux命令行下字典,使用有道API

Linux命令行下的字典&#xff0c;使用“exit”退出。大家简单申请一个key就可以用了。这里申请#!/usr/bin/python3.2import urllib.requestimport jsondef wordMeaning(word):"""Use YouDao API key and the url below, get the JSON formatted information,the…

Java对象转换成JSON对象/JSON对象转换成JSON字符串/JSON字符串转换成JS对象

文章目录后端部分前端部分后端部分 Option op new Option("海淀","hd");//java对象转换json对象 JSONObject obj JSONObject.fromObject(op); //json对象转换成json字符串 String str obj.toString();List<Option> ops new ArrayList<Option…

kafka 消费端 api_在消费者的眼中:您真的需要为您的API提供客户端库吗?

kafka 消费端 apiRESTful Web服务和API的优点在于&#xff0c;任何使用HTTP协议的使用者都可以理解和使用它。 但是&#xff0c;同样的难题一遍又一遍地弹出&#xff1a;您是否应该将Web APis与客户端库一起使用&#xff1f; 如果是&#xff0c;您应该支持哪些语言或/和框架&am…

linux 进程的vss rss uss,内核/内存管理中的VSS/RSS/PSS/USS

转自&#xff1a;http://www.douban.com/note/161471809/RSS is the total memory actually held in RAM for a process.RSS can be misleading, because it reports the total all of the shared libraries that the process uses, eventhough a shared library is only loade…

如何将类加载到内存

// 将类Driver加载到内存&#xff0c;在内存会产生一个和类Driver对应的Class实例 Class class Class.forName("com.mysql.jdbc.Driver");// 获取类加载器&#xff0c;任何类都有个class属性&#xff0c;这个属性返回类在内存中对应的那个Class实例&#xff0c;通过…

idea资源包下创建资源包_根据谁创建资源授权资源

idea资源包下创建资源包我的一位同事向我提出了一个关于StackOverflow的有趣问题&#xff0c;并由于我在Spring方面的经验&#xff0c;建议我回答一个很好的问题。 问题是&#xff0c;“ 如何基于使用批注在REST中创建资源的用户来授权特定资源 。” 要点是&#xff1a; 我正…

如何卸载linux中的docker,linux centos7 安装、卸载docker

docker安装1&#xff1a;查看系统版本cat /etc/redhat-releaseCentOS Linux release 7.4.1708 (Core)2:安装docker(yum方式)$ yum install docker3&#xff1a;查看是否安装成功$docker version若输出以下&#xff0c;说明安装成功Client:Version: 1.12.6API version: …

html页面中Location对象跳转页面用法

姓名&#xff1a;<input name"name"/></br> 薪水&#xff1a;<input name"salary"/></br> 年龄&#xff1a;<input name"age"/></br> <input type"submit" value"确认"/></br…

java orm框架有哪些_Java Stream ORM现在带有JOIN

java orm框架有哪些Speedment是一个Java Stream ORM工具包和运行时&#xff0c;它使您可以将数据库表作为标准Java Streams查看。 由于不必混合使用Java和SQL&#xff0c;因此该应用程序变得更加紧凑&#xff0c;从而使其开发速度更快&#xff0c;更不容易出错并且易于维护。 流…

linux pdb创建表空间,ORACLE12C PDB创建默认表空间和用户语句(示例代码)

第一次接触到12C CDB和PDB数据库&#xff0c;且客户提供的是ORACLE一体机&#xff0c;只有访问权&#xff0c;费劲周折&#xff0c;今记录12C创建默认路径表空间语句和用户--创建默认表空间&#xff1a;create tablespace tablesapce_name datafile size 500M autoextend on …

用户在页面输入的中文数据,servlet如何获得正确的中文值

public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// 告诉浏览器&#xff0c;返回的是html页面&#xff0c;而且是以utf-8编码的response.setContentType("text/html;charsetutf-8");//reques…

java编写排序的代码_在Java 8之前,您编写了几行代码来对对象集合进行排序?...

java编写排序的代码在Java 8之前&#xff0c;您编写了几行代码来对对象集合进行排序&#xff1f; Java 8您需要多少个&#xff1f; 您可以在Java 8中用一行完成。 让我们看看下面的Employee类。 public class Employee {private String name;private Integer age;public Emp…

java全局变量和局部变量_Java 10 –局部变量类型推断

java全局变量和局部变量在本文中&#xff0c;我们将看到作为JEP 286的一部分提出的名为Local Variable Type Inference的Java10功能。 从Java的第一个版本开始&#xff0c;它是一种强类型化的语言&#xff0c;我们需要提及每种变量数据类型。 我们都感到Java是冗长的语言&#…

JS_Java_Oracle_MySQL截取字符串的函数

JS 截取字符串 函数 substring(indexStart, indexEnd)&#xff1a; function f1() {var s abcd;// 字符串的字符下标从0开始&#xff0c;从下标为2的字符c开始截取&#xff0c;截取到下标为3的字符d为止&#xff0c;含头不含尾&#xff0c;所以字符d没有被截取&#xff0c;最…

linux安装meld rpm,Linux meld安装

meld是一款图形化的文本比较工具&#xff0c;该工具在windows与linux平台下均有对应版本&#xff0c;最新版本为3.14.2&#xff0c;附上下载地址http://meldmerge.org/meldmeld相较diff命令其输出结果更加直观&#xff0c;因此在linux下使用该工具进行程序源码的比较。忘了说了…

linux注册平台驱动,关于Linux驱动的平台注册方式-- platform_driver_register

http://hi.baidu.com/deep_pro/blog/item/754f7764b73099fbf636544a.htmlcdev_add 、register_blkdev 这样的驱动注册函数platform_driver_register这样的写法&#xff0c;但是没有看到哪本书介绍了相关内容简要说&#xff0c;使用这种方式&#xff0c;可以轻松的实现device和d…

JDBC连接Oracle数据库的参数配置

Oracle 的连接 URL 字符串&#xff1a;jdbc:oracle:thin:host:port:sid 在数据库配置文件 db_oracle.properties 的配置字段如下&#xff1a; urljdbc:oracle:thin:localhost:1521:orcl dbUserlwx dbPassword123456 driverNameoracle.jdbc.OracleDriver