Articles of linux

当进程使用的“Res”内存不变时,自由物理内存如何减less?

我观察到我无法解释的以下行为:由服务器报告的可用物理内存量增加,而由大多数耗尽内存的进程(Web服务器进程)报告的“Res”内存几乎是平坦的。 我主要想了解的是:如果物理内存的使用增加,而进程所报告的驻留内存是恒定的,那么怎么可能呢? 在这些过程中会发生什么事情来引起这种可观察到的行为,特别是不会产生太多的负载? 换句话说,在一个过程中会发生什么事情,以至于“记忆”首先被报告为“居民”,但实际上并没有占用任何物理记忆的变化,以至于仍被报告为“居民”,但现在也居然占据了物理内存? 例如:我有一个2GB内存的虚拟服务器。 昨天中午12:00,大约有800MB(40%)正在使用,据报道由top / free [1]。 大多数是由几个进程使用,共同报告使用大约1.2GB的驻留内存[2]。 然后,我开始了一些testing(执行这些进程提供的大量HTTP请求),将物理内存使用率提高到1.2GB(60%),并将进程使用的驻留内存增加到了3.2GB。 之后,我根本没有碰到服务器,也没有公开提供:之后的负载<0.03。 尽pipe如此,虽然由进程报告的常驻内存平均为3.2GB,但物理内存使用缓慢增加,并且有一点超过了90%(1.8GB),导致了标志提升。 在这些Web服务器进程中,当时没有任何事情发生(如负载所certificate的),并且没有任何特殊的作业正在运行。 上面的场景图可以在这里看到。 上图显示的是什么top / free报告为空闲物理内存。 下图显示的是“Res”栏中的top报告。 请注意,标记为Ruby的区域总共是6个进程。 [1]通常在这些服务器上,所有内存被标记为“已使用”,所有空闲内存用于caching。 我的意思是:直到最后一个字节。 top和free所有其他数字都是0。 [2]我知道由几个进程报告的常驻内存的总和可以超过所使用的物理内存,但我不认为我知道所有这些可能发生的方式。

在我的第一个qemu / kvm运行中可以改进什么?

刚开始使用kvm(qemu?我很模糊的术语)。 为了testing一切是否正常,我在我的lvm上创build了逻辑卷,然后使用以下命令启动虚拟机: qemu-system-x86_64 -machine type=pc,accel=kvm -cpu host -hda /dev/vgroup/kvm-1 -m 1024 (当然,首先我做了同样的,但使用-cdrom来安装系统)。 似乎没问题,但CPU密集型操作(bzip2 / sha512sum)似乎比主机系统慢20%左右。 这是正常的吗? 我可以做/改变任何东西吗? 另外 – 有什么我应该添加到我的qemu调用,使其更好/更快/更安全? 我确实find了一些教程,但通常都是非常基础的,而且并不关注性能/安全性。

mod_jk状态页面不工作

我正在用Apache服务器在Tomcat 7中进行群集。 它也工作得很好。 不过,我有以下问题: 1)我正在尝试监视mod_jk状态页面; 但它是给404错误。 2)在Log中显示以下错误 – [Tue Dec 17 13:16:51.019 2013] [2236:140599476504544] [error] init_jk::mod_jk.c (3348): Initializing shm:/etc/httpd/logs/mod_jk.shm.2236 errno=13. Load balancing workers will not function properly. [Tue Dec 17 13:16:51.019 2013] [2236:140599476504544] [info] init_jk::mod_jk.c (3365): mod_jk/1.2.37 initialized [Tue Dec 17 13:16:51.041 2013] [2237:140599476504544] [error] init_jk::mod_jk.c (3348): Initializing shm:/etc/httpd/logs/mod_jk.shm.2237 errno=13. Load balancing workers will not […]

内存不足(3.2.0)恐慌(Debian 7.3),即使有问题的进程被终止

当试图将一个相当大的文件夹(450G)备份到仅作为备份目标rdiff-backup (版本1.2.8 – 最后标记为stable )的2TB驱动器时,会导致内核崩溃。 系统: Linux giorgio 3.2.0-4-amd64 #1 SMP Debian 3.2.51-1 x86_64 GNU/Linux 磁盘:2个1TB磁盘,软件镜像RAID模式,1个2TB磁盘,仅用于备份。 我有一个怀疑:服务器上的内存是2G内存+ 2G交换= 4G。 有大小达16G的文件。 在某些时候, rdiff-backup可能会将整个文件加载到内存中吗? 在任何情况下,内核恐慌都不应该发生(因为rdiff进程被杀害了,所以内存应该再次可用?),所以我想我的问题有两个部分,一个是关于我的怀疑,二是关于内核恐慌。 顺便说一句,最近恐慌开始了,相当多的备份已经成功了 – 完整的和渐进的 – 那些大的GB文件已经在那里。 所以我想这是新的Debian内核的错误,而不是rdiff-backup的? 日志文件部分在发生恐慌的时候http://pastebin.com/e9a5fQdh 最后一件事情在屏幕上: 编辑/更新:我只是尝试创build一个20GB的交换文件(从/ dev /零dd)和服务器再次closures,没有反应ping 。 从查看日志:看起来内核已经杀死了一些进程 – 包括我怀疑已经造成这一切的进程(rdiff-backup) – 但是却说“用完了可以进行的进程”。 看来杀死进程并没有释放内存?

Postfix和Sendmail的smmsp cron作业

我正在运行Ubuntu 13.10,最近用Postfixreplace了默认的Sendmail安装。 从我在其他地方看到的Ubuntu需要Sendmail作为系统function,所以Postfix 模拟sendmail提交程序 。 我最近注意到/var/log/mail.log每20分钟发生一次: Jan 28 15:00:01 domain postfix/pickup[2452]: 2F81583C8B: uid=108 from=<smmsp> Jan 28 15:00:01 domain postfix/cleanup[2765]: 2F81583C8B: message-id=<[email protected]> Jan 28 15:00:01 domain postfix/qmgr[1881]: 2F81583C8B: from=<[email protected]>, size=684, nrcpt=1 (queue active) Jan 28 15:00:06 domain postfix/smtp[2767]: 2F81583C8B: to=<[email protected]>, orig_to=<root>, relay=mail.domain.co.uk[79.170.40.74]:25, delay=5.4, delays=0.01/0.01/5.3/0.05, dsn=5.0.0, status=bounced (host mail.domain.co.uk[79.170.4$ Jan 28 15:00:06 domain postfix/cleanup[2765]: 87F9F83C8C: message-id=<[email protected]> Jan […]

ESX 5.Xcaching来宾IO吗?

我试图找出guest是否可以看到成功的磁盘刷新操作,但主机实际上并没有将其刷新到磁盘? ESXi如何与来宾I / O一起工作? 在写入主机磁盘之前,它们是否由ESXicaching?

我的RAM在哪里,如果它不在caching/缓冲区或进程使用?

我知道Linux喜欢吃我的RAM,这很好,但是这并不能说明我在运行CentOS 6.5的VPS(KVM)上看到的东西。 事实上,我在一个1GB的虚拟机上至less缺less了200MB。 它可能在哪里? total used free shared buffers cached Mem: 996 907 89 0 76 379 -/+ buffers/cache: 451 545 Swap: 1023 5 1018 free -m表明,没有缓冲区/caching,系统使用451 MB内存。 但是,运行的程序(主要是nginx / php-fpm / mysqld / sshd)没有办法加起来那么多的RAM。 ps_mem报告90MB目前正在被程序使用,这里是什么smem说: Area Used Cache Noncache firmware/hardware 0 0 0 kernel image 0 0 0 kernel dynamic memory 820912 775204 45708 […]

当Internet连接不可用时如何使ntpd超时

我正在使用以下命令来同步Oracle Linux 6.5上的时间: ntpd -gq 不幸的是,当互联网连接不可用时,它不会超时。 这是可能的还是应该实现我自己的超时机制?

iptables:扫描器是否知道你是否丢包?

我知道REJECT和DROP链是如何工作的。 但是,当我在这里读到REJECT vs DROP时 ,用户Dagelf表示服务器仍然回复TCP SYN/ACK 。 当防火墙使用DROP时,扫描器是否知道数据包被丢弃?

“net ads join”在puppet exec中失败,但直接从命令行运行OK

我有以下exec将Linux(CentOS 6)主机连接到Active Directory域。 从bashterminal以root用户身份运行时,它运行成功,主机正确joinAD域。 但是,在puppet中运行时, net ads join命令将失败: 无法join域:无法为机器帐户设置密码(NT_STATUS_ACCESS_DENIED) 这是执行官 exec { 'adjoin': command => "kinit [email protected] -k -t /etc/krb5.keytab && net ads join createcomputer='Machines/Servers/Linux Servers' osName='${operatingsystem}' osVer=${operatingsystemrelease} -k", unless => "net ads testjoin -k | grep -q 'Join is OK'", provider => shell, user => root, path => '/usr/sbin:/usr/bin:/sbin:/bin', require => [ File['/etc/krb5.conf'], File['/etc/krb5.keytab'], […]