标签: memory

查找总 RAM 内存和交换内存

我需要编写一个脚本来查找多个 Linux 服务器(2000+)的总内存和总交换空间。我有一台受信任的服务器,无需密码即可登录所有这 2000 台服务器。

当我运行这个脚本时,它应该给出如下输出:

Server         total memory        swap
redhat1   
redhat2
redhat3
...
redhat2000
Run Code Online (Sandbox Code Playgroud)

我怎样才能实现这个目标?

linux scripting memory

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

谁是 Linux 内存“子系统”的开发者?

经过一个小时的谷歌搜索,我仍然找不到 Linux 内存子系统开发人员的联系电子邮件。

问题:显示谁开发 Linux 内核的网页在哪里,特别是内存“子系统”部分?

linux memory

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

当用作管道的一部分时,“cat”如何处理大文件?

假设我cat有一个大小为 10 GB 的文件,并且我通过管道将其传输到headcat如果我的系统只有 2 GB 的 RAM 和 1 GB 的交换空间,它会工作吗?我想知道内部细节。

memory pipe files cat

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

如果可用内存小于 X mb,则批处理脚本运行命令

我想编写一个批处理脚本来检查已用或可用内存,以便在可用内存小于 X mb 时运行命令。

我用谷歌搜索,但他们引用的页面对我不起作用我正在使用 centos 7

基本上我想做

if availablememory < 26000m
do command=forever stopall
do command=pkill -f checkurl.php
end 






BEFORE PROGRAM START
[root@www ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:          32002        3471         802        1121       27728       26529
Swap:         38112         234       37878
[root@www ~]#


AFTER PROGRAM START 
[root@www ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:          32002       13913         200        1121       17887       16381
Swap:         38112         234       37878
Run Code Online (Sandbox Code Playgroud)

command-line memory batch-jobs

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

如何找到合适的内存大小?

我们有一台 32G 的 Linux 机器。我们按如下方式捕获内存:

mem=` cat /proc/meminfo | grep MemTotal | awk '{print $2}' `
echo $mem
32767184
Run Code Online (Sandbox Code Playgroud)

现在我们将其转换为 GIGA:

mem_in_giga=`  echo $(( $mem / 1024 / 1024)) `
echo $mem_in_giga
31
Run Code Online (Sandbox Code Playgroud)

但从结果中我们得到 31 而不是 32G。

free命令相同的故事:

free -g
              total        used        free      shared  buff/cache   available
Mem:             31           9          17           0           4          20
Swap:             7           0           7
Run Code Online (Sandbox Code Playgroud)

那么我们如何从任何命令中获得“32G”呢?

linux memory meminfo

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

当 machine.slice 不包含任何进程时,为什么它显示为正在使用内存?

$ systemctl status machine.slice\n\xe2\x97\x8f machine.slice - Virtual Machine and Container Slice\n   Loaded: loaded (/usr/lib/systemd/system/machine.slice; static; vendor preset: disabled)\n   Active: active since Wed 2018-06-13 08:45:07 BST; 1 day 15h ago\n     Docs: man:systemd.special(7)\n    Tasks: 0\n   Memory: 717.0M\n   CGroup: /machine.slice\n\n$ cd /sys/fs/cgroup/memory/machine.slice\n$ cat memory.usage_in_bytes \n751915008\n$ cat tasks\n$ cat cgroup.procs\n$\n
Run Code Online (Sandbox Code Playgroud)\n\n

machine.slice即使 cgroup 中没有进程/线程,但仍使用 717MB,这意味着什么?这是内核错误吗?

\n\n

我可以通过使用 virt-manager 启动虚拟机然后停止它来重现这一点。如果我重复这个循环,结果大致相同 - 即系统似乎没有泄漏这数百兆字节。

\n\n

软件版本

\n\n
$ uname -r\n4.16.14-300.fc28.x86_64\n\n$ rpm -q systemd libvirt-daemon\nsystemd-238-8.git0e0aa59.fc28.x86_64\nlibvirt-daemon-4.1.0-2.fc28.x86_64\n
Run Code Online (Sandbox Code Playgroud)\n

memory systemd cgroups

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

64位linux进程的虚拟内存的内核部分是什么?

我遇到了这个问题:

在 Linux 进程的虚拟内存空间中拥有内核部分有什么用?

并基于答案和对答案的评论:

内核内存映射包括所有物理内存的直接映射,因此内存中的所有内容都出现在那里;它还包括内核、模块等的单独映射,因此包含内核的物理地址至少出现在两个不同的映射中

这是真的?我找不到任何来源或参考资料,为什么它会包含整个物理内存的映射,然后又具有内核模块的单独映射?那不是多余的吗?

有人可以简单地解释一下 64 位 Linux 进程的虚拟内存的内核部分是什么吗?并请提供答案的来源!因为我在任何书籍或论文中都找不到与此相关的任何内容。

process 64bit kernel memory virtual-memory

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

非常高的内存使用率,没有任何运行

我正在使用 GNOME 3.38 X11 运行 Arch Linux,并且有一个问题,即我处于空闲状态(在使用计算机一段时间并关闭所有内容后)使用大约 8-9GB 的 RAM。

我知道linxatemyram,我认为这不是问题,因为free -m打印了以下内容:

               total        used        free      shared  buff/cache   available
Mem:           62282        9059       29502         162       23720       52368
Swap:           8191           0        8191
Run Code Online (Sandbox Code Playgroud)

表明我确实在什么都不运行时使用了大量内存。当我曾经拥有 16GB 时,由于这个问题,我也会经常耗尽内存,所以我认为这不是某种形式的缓存,因为当我的内存使用量增加时,它会回落。

奇怪的是,top内存使用量也没有达到它声称保留的数量。这是我得到的结果的粘贴。我一直在想一定有什么东西在泄漏,但我似乎无法找出是什么。

编辑:额外的输出。这些是在重新启动后不久测量的,因此不具有代表性。出现同样的情况后,我会重新运行并发布。

$ mount | grep tmpfs
dev on /dev type devtmpfs (rw,nosuid,relatime,size=31848276k,nr_inodes=7962069,mode=755,inode64)
run on /run type tmpfs (rw,nosuid,nodev,relatime,mode=755,inode64)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,inode64)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,size=4096k,nr_inodes=1024,mode=755,inode64)
tmpfs on /tmp type tmpfs (rw,nosuid,nodev,size=31888716k,nr_inodes=409600,inode64)
tmpfs on /run/user/1000 …
Run Code Online (Sandbox Code Playgroud)

gnome arch-linux memory

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

内存不足时创建交换区

内存不足是一个常见问题,官方的 OOM 效率不高。为了更快地完成查杀工作,还引入了其他几个程序。

我想知道为什么没有办法创建交换而不是杀死。考虑一个没有交换的系统,OOM 程序可以触发sudo swapon /swapfile(假设swapfile存在)而不是杀死进程。

实施这个想法有技术限制吗?

linux memory swap out-of-memory

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

在 CentOS 中限制 PHP-FPM 和 Nginx 进程的 CPU 和内存使用

我想限制 CentOS 中 PHP-FPM 和 Nginx 进程的 CPU 和内存使用量。我遇到了以下工具

  • 处理器限制
  • cggroups
  • 内存资源定位器

哪个更有效,我如何配置以限制 PHP-FPM 和 Nginx 进程的资源?

cpu memory resources

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