小编mat*_*teo的帖子

Cent OS:如何关闭或减少内存过量使用,这样做是否安全?

“我的”服务器有时会因为内存和交换空间不足而停止运行。(它一直响应 ping 但仅此而已,甚至没有 ssh)。

有人告诉我 linux 内存过量使用,据我所知,这与银行对金钱的处理相同:它授予进程比实际可用内存更多的内存,假设大多数进程实际上不会使用他们要求的所有内存,在至少不是同时所有。

请假设这实际上是我的系统偶尔挂起的原因,我们不在这里讨论是否是这种情况(请参阅什么可能导致服务器上的所有服务关闭,但仍然响应 ping?以及如何弄清楚) .

所以,

  1. 如何在 CentOS 中禁用或大幅减少内存过量使用?我读过有两个设置叫做 vm.overcommit_memory(值 0、1 或 2)和 vm.overcommit_ratiom 但我不知道我必须在哪里找到和更改它们(希望是一些配置文件),我应该尝试什么值,以及是否需要重新启动服务器才能使更改生效。

  2. 安全吗?我可以期待什么副作用?在谷歌搜索 overcommit_memory 时,我发现一些可怕的事情,比如人们说他们的服务器无法再启动......

由于导致内存使用量突然增加的原因是 mysql,因为 php 进行的查询反过来在服务 http 请求时被调用,我希望只有一些 php 脚本无法完成,因此不时会有大约 500 个响应服务器太忙,这是我可以承担的风险(当然更好的是让整个服务器变得无法访问并且必须重新启动它)。

或者,如果我选择了错误的设置,它真的会导致我的服务器无法重新启动吗?

linux memory centos centos5

21
推荐指数
3
解决办法
2万
查看次数

什么会导致服务器上的所有服务关闭,但仍然响应 ping?以及如何弄清楚

我的服务器在几天内已经发生了两次,我的服务器完全关闭,这意味着 http、ssh、ftp、dns、smtp,基本上所有服务都停止响应,就好像服务器已经关闭一样,除了它仍然响应 ping ,这是最让我感到困惑的地方。

我确实有一些 php 脚本会在短时间内在服务器上造成巨大的负载(cpu 和内存),由一小群用户使用,但通常服务器对这些突发“生存”得很好,当它出现故障时永远不会与这样的使用高峰重合(我不是说它不能相关,但它不会在那些之后发生)。

我不是要你神奇地告诉我这些崩溃的最终原因,我的问题是:是否有一个进程的死亡可能会导致所有这些服务同时关闭?有趣的是,除了 ping 之外,所有网络服务都关闭了。如果服务器 100% 的 CPU 被某个进程占用,它也不会响应 ping。如果 apache 由于(例如)损坏的 php 脚本而崩溃,那只会影响 http,而不影响 ssh 和 dns.... 等。

我的操作系统是 Cent OS 5.6

最重要的是,在硬重启服务器后,我应该查看哪些系统日志?/var/log/messages 不会显示任何可疑内容。

server-crashes centos service

9
推荐指数
2
解决办法
3473
查看次数

收到电子邮件时触发 php 脚本

我有一个带有 qmail 的 centOS 服务器,我想对其进行设置,以便每次发送电子邮件时,都会立即运行一个 php 脚本。我不需要将特定消息“转发”到 php 脚本,只需在 qmail 传递消息时触发它的执行。但是,如果我能让脚本至少知道哪个邮箱收到了消息,那就太好了(我会避免无用地检查我的脚本当前所做的所有邮箱)

目前,我通过每分钟通过 cronjob 运行我的 php 脚本来实现这一点,但我想避免在没有收到邮件时无用地运行脚本,并避免平均半分钟的延迟。

如何设置qmail在投递邮件后触发程序的执行?

email php

4
推荐指数
1
解决办法
2865
查看次数

为什么这个命令不能作为 cronjob 工作,而在 shell 中输入时却能完美运行?

如果我从 shell 运行此命令,它会按预期工作:

cd ~ && mysqldump --databases --skip-dump-date --host=localhost --user=admin --password=xxxxx --lock-all-tables --result-file=xxxxx_dump_tmp.sql mydb && gzip xxxxx_dump_tmp.sql && mv xxxxx_dump_tmp.sql.gz xxxxx_dump_`date +"%Y-%m-%d__%H.%M.%S"`.sql.gz
Run Code Online (Sandbox Code Playgroud)

但是,如果我使用完全相同的命令(复制粘贴)设置 cronjob,它会失败并显示以下错误(我通过电子邮件收到通知):

/bin/sh: -c: line 0: unexpected EOF while looking for matching ``'
/bin/sh: -c: line 1: syntax error: unexpected end of file
Run Code Online (Sandbox Code Playgroud)

怎么了?

bash cron

4
推荐指数
2
解决办法
1084
查看次数

centos:su默默失败

在我以 root 身份通过 SSH 登录的 CentOS 服务器上,我执行以下操作:

su 其他用户名

其中“otherusername”是另一个用户的用户名,它存在。

它什么都不做。在那之后,我仍然是root。whoami 返回 root,我创建的任何文件都属于 root,即 su 不属于 su。

但是它不会给出任何错误消息。如果我尝试使用无效的用户名 su ,它确实会给出一条错误消息。

我错过了什么??

su centos

3
推荐指数
1
解决办法
1304
查看次数

我如何在centOS 上更新php?

我在 centOS 服务器上安装了 php 5.1.6,我至少需要 5.3.2(但宁愿安装最新的可用 5.* 版本)。

如果我跑

yum update php
Run Code Online (Sandbox Code Playgroud)

它说它会更新到 5.1.6-34.el5_8(我的是 5.1.6-27.el5_5.3)......什么鬼???

centOS 的可用软件包是否远远落后于当前版本,还是因为 yum 在默认情况下只会在第二个点(或其他东西)之后的 subversion 内更新,我需要告诉它给我一个更新的版本?如果是这样,我该怎么做?

php centos yum update

2
推荐指数
1
解决办法
1万
查看次数

PHP 执行我已经覆盖的旧版本脚本

我真的吓坏了。这是我第一次遇到这样的事情。我已经修改保存了一个php脚本,现在在浏览器中调用,老版本还在运行。

不,我没有看到浏览器缓存的页面版本。我正在使用 Yii 框架,并且正在查看应用程序的日志。我可以在服务器上 vim php 文件,看看它是新版本。然而,当我从浏览器发出请求,然后查看日志时,日志中显示的新跟踪表明它正在运行旧版本。该版本不再存在,它已被覆盖。

我认为 PHP 引擎正在使用编译字节码的某些缓存版本,没有意识到(出于某种原因)脚本已被修改并且缓存编译版本已过时。这显然是某些服务器软件(php 本身?zend 引擎?随便……)中的一些可怕的错误。问题是:我该如何解决它?如何清除这种缓存以强制重新编译所有脚本文件?

phpinfo 的输出:

> PHP Version 5.1.6
> 
> 
> System    Linux ks3094309.kimsufi.com 2.6.38.2-xxxx-std-ipv6-64 #1 SMP
> Tue Apr 12 17:19:35 UTC 2011 x86_64 Build Date    Nov 29 2010 16:49:11
> Configure Command  './configure' '--build=x86_64-redhat-linux-gnu'
> '--host=x86_64-redhat-linux-gnu' '--target=x86_64-redhat-linux-gnu'
> '--program-prefix=' '--prefix=/usr' '--exec-prefix=/usr'
> '--bindir=/usr/bin' '--sbindir=/usr/sbin' '--sysconfdir=/etc'
> '--datadir=/usr/share' '--includedir=/usr/include'
> '--libdir=/usr/lib64' '--libexecdir=/usr/libexec'
> '--localstatedir=/var' '--sharedstatedir=/usr/com'
> '--mandir=/usr/share/man' '--infodir=/usr/share/info'
> '--cache-file=../config.cache' '--with-libdir=lib64'
> '--with-config-file-path=/etc'
> '--with-config-file-scan-dir=/etc/php.d' '--disable-debug'
> '--with-pic' '--disable-rpath' …
Run Code Online (Sandbox Code Playgroud)

php zend-optimizer

2
推荐指数
1
解决办法
399
查看次数

什么服务器 linux 发行版“保证”您将始终能够升级到主要的新版本?

令我惊讶的是,我发现我无法将我的 CentOS 5.5 系统升级到 CentOS 6...(好吧,我可以,但不支持风险和痛苦的过程,很可能会导致混乱)

因此,与其浪费我的时间进行新的全新安装,每次出现新的主要版本时我都必须一遍又一遍地重做,我更喜欢安装不同的发行版,这次选择一个我知道将始终保证可能性的发行版无缝升级到任何新的次要或主要版本。

在“大”Linux 发行版中,哪些负责保证跨主要版本无缝升级的能力?Debian 吗?

linux debian redhat centos distro

1
推荐指数
1
解决办法
593
查看次数

标签 统计

centos ×5

php ×3

linux ×2

bash ×1

centos5 ×1

cron ×1

debian ×1

distro ×1

email ×1

memory ×1

redhat ×1

server-crashes ×1

service ×1

su ×1

update ×1

yum ×1

zend-optimizer ×1