AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题

问题[swap](server)

Martin Hope
mbrampton
Asked: 2022-02-16 09:49:20 +0800 CST

如何在 Armbian 中永久删除 /dev/zram0 作为交换

  • 3

我的 Armbian Bullseye 系统坚持在 /dev/zram0 上设置交换空间。我不希望这样,因为我创建了一个我更喜欢使用的交换分区。

但我找不到如何永久删除交换空间 /dev/zram0。它可以通过 swapoff 暂时删除,但在重新启动时会返回。/etc/fstab 或我能找到的其他任何地方都没有相关内容。

由于服务失败,安装 zram-tools 没有帮助。

搜索给出了很多关于交换或 zram 的页面,但似乎没有任何东西可以回答这个看似简单的问题!请问有什么建议吗?

添加以下答案:命令

systemctl --type swap

屏蔽并重新启动后,显示:

dev-disk-by\x2duuid-1e389607\x2d8cdf\x2d4ce7\x2dacfb\x2dccb7426a336b.swap loaded active active /dev/disk/by-uuid/1e389607-8cdf-4ce7-acfb-ccb7426a336b 

● dev-zram0.swap masked active active /dev/zram0 

第一行是交换分区。不幸的是,zram 交换没有根据 swapon --show 进行:

NAME TYPE SIZE USED PRIO 
/dev/sda2 partition 2G 0B -2 
/dev/zram0 partition 995.2M 0B 5
debian swap
  • 2 个回答
  • 1086 Views
Martin Hope
eheu
Asked: 2022-02-03 01:41:32 +0800 CST

我的具有约 80GB 可用 RAM 的交换服务器是否需要更多?

  • 0

我正在管理一个 Debian Linux x86_64 服务器,它有 125GB RAM、10GB 交换分区和 60 的交换值。

free -gw输出打印:

              total        used        free      shared     buffers       cache   available
Mem:            125          20           1          25           0         103          78
Swap:             9           1           7

每天晚上,都会运行一个 cron 作业,该作业对磁盘 R/W 非常密集,并且在执行期间将使用的内存增加 2GB,然后返回到 ~20GB。

在同一时间范围内,某些长期运行的容器化 Python 进程(尤其是 gunicorn)被分页。

随着时间的推移,这些进程将逐渐填满交换空间——几周后,交换空间将达到 99%。

swapoff我可以通过重新启动进程或使用and禁用和重新启用来清除交换swapon。但是 Python 进程的交换使用将再次缓慢上升。

我想部分解释可能是,由于每晚的 cron 作业,内核将文件系统缓存的优先级高于 Python 进程。但我也猜想这些 Python 进程的内存处理中的一些软件错误可能是罪魁祸首。

一位朋友建议我购买更多 RAM,以便为文件系统缓存提供更多空间。这对我来说似乎太过分了。我想更准确地诊断交换的原因并找到一些解决问题的软件。

所以现在我将问题传递给 Serverfault - 你如何看待这种现象,我应该从这里去哪里?

linux io memory python swap
  • 1 个回答
  • 78 Views
Martin Hope
tuk
Asked: 2021-07-03 07:32:18 +0800 CST

限制 Ubuntu 18.04 中 systemd 服务的交换使用

  • 1

我试图限制使用Ubuntu 18.04文档MemorySwapMax中提到的进程的交换使用。

环境

ubuntu@vrni-platform:/usr/lib/systemd/system$ uname -a
Linux vrni-platform 4.15.0-143-generic #147-Ubuntu SMP Wed Apr 14 16:10:11 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

ubuntu@vrni-platform:/usr/lib/systemd/system$ systemctl --version
systemd 237
+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN2 +IDN -PCRE2 default-hierarchy=hybrid

我的 systemd 单元文件如下所示

[Unit]
Description=My service
After=network.target
StartLimitIntervalSec=0
[Service]
Type=simple
Restart=always
RestartSec=1
User=support
MemoryMax=2000M
KillMode=process
MemoryAccounting=true
OOMScoreAdjust=1000
MemorySwapMax=0
ExecStart=/usr/bin/java -cp /home/support -XX:NativeMemoryTracking=summary -Xmx10000m MemoryConsumer 100 200 1

我试图通过为MemorySwapMax. 但似乎 systemd 中存在一些问题,该问题已在 systemd 239 中修复。

所以我也尝试了设置MemorySwapMax=1M。但这似乎也没有限制此 systemd 服务的交换内存使用。

的文档MemorySwapMax说明了这一点

This setting is supported only if the unified control group hierarchy is used and disables MemoryLimit=.

有人可以让我知道如何知道unified control group hierarchy我的设置中是否正在使用 systemd,或者还有什么可能是不允许MemorySwapMax生效的问题?

编辑

如this answer中所述,我可以看到已cgroup2启用

ubuntu@vrni-platform:/tmp/debraj$ sudo mount -t cgroup2 none /tmp/debraj
ubuntu@vrni-platform:/tmp/debraj$ ls -l /tmp/debraj/
total 0
-r--r--r--  1 root root 0 Jul  2 17:13 cgroup.controllers
-rw-r--r--  1 root root 0 Jul  2 17:13 cgroup.max.depth
-rw-r--r--  1 root root 0 Jul  2 17:13 cgroup.max.descendants
-rw-r--r--  1 root root 0 Jun 30 14:42 cgroup.procs
-r--r--r--  1 root root 0 Jul  2 17:13 cgroup.stat
-rw-r--r--  1 root root 0 Jul  2 17:13 cgroup.subtree_control
-rw-r--r--  1 root root 0 Jul  2 17:13 cgroup.threads
drwxr-xr-x  2 root root 0 Jun 30 14:42 init.scope
drwxr-xr-x 87 root root 0 Jul  2 15:05 system.slice
drwxr-xr-x  7 root root 0 Jun 30 15:22 user.slice
ubuntu@vrni-platform:/tmp/debraj$ sudo umount /tmp/debraj
ubuntu swap systemd ubuntu-18.04
  • 1 个回答
  • 553 Views
Martin Hope
newbie
Asked: 2021-04-29 15:02:30 +0800 CST

如何在 Linux 上触发交换空间使用?

  • 0

是否有我可以运行的 linux 命令或进程来触发或强制它以高速率使用交换,例如耗尽 50% 的交换空间?我尝试复制文件,但只看到内存使用量上升和下降。

swap
  • 1 个回答
  • 283 Views
Martin Hope
The MW
Asked: 2020-11-22 02:39:24 +0800 CST

Ubuntu 18.04,1.5G 交换 100% 已使用(32G RAM),软 RAID1。如何增加 SWAP 大小?

  • 0

我有一个生产服务器,最近我看到服务器有时会变慢,而且SSH很慢,一旦进入终端,即使按ENTER也很慢。

当服务器正常时,我检查了内存使用情况和 CPU,CPU 看起来很好,RAM 看起来很好,除了 SWAP 是 100% 使用的。我用谷歌搜索,似乎 SWAP 不应该被 100% 使用,也许是 50%。

所以我想增加 SWAP 的大小。但由于这是一个生产服务器,并且它配置了软 RAID1,所以我不想把它搞砸,直到我确定它绝对正确。

以下是服务器配置:

CPU is E3-1245-V2, 32G RAM, 3x2T HDD

top命令结果:

top - 05:33:54 up 2 days, 13:45,  1 user,  load average: 2.43, 2.43, 2.50
Tasks: 243 total,   1 running, 165 sleeping,   0 stopped,   0 zombie
%Cpu(s): 28.4 us,  0.6 sy,  0.0 ni, 69.0 id,  1.7 wa,  0.0 hi,  0.2 si,  0.0 st
KiB Mem : 32893852 total,   278960 free, 28153624 used,  4461268 buff/cache
KiB Swap:  1569780 total,        0 free,  1569780 used.  4226648 avail Mem 

df -h结果:

Filesystem      Size  Used Avail Use% Mounted on
udev             16G     0   16G   0% /dev
tmpfs           3.2G  1.5M  3.2G   1% /run
/dev/md3         20G  7.4G   11G  41% /
tmpfs            16G     0   16G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs            16G     0   16G   0% /sys/fs/cgroup
/dev/md2        487M  148M  310M  33% /boot
/dev/md4        1.8T  536G  1.2T  32% /home
tmpfs           3.2G     0  3.2G   0% /run/user/1000

cat /proc/mdstat结果:

Personalities : [raid1] [raid0] [raid6] [raid5] [raid4] [linear] [multipath] [raid10] 
md4 : active raid1 sdb4[1] sdc4[2] sda4[0]
      1931981760 blocks [3/3] [UUU]
      bitmap: 5/15 pages [20KB], 65536KB chunk

md2 : active raid1 sda2[0] sdb2[1] sdc2[2]
      523200 blocks [3/3] [UUU]
      
md3 : active raid1 sda3[0] sdb3[1] sdc3[2]
      20478912 blocks [3/3] [UUU]
      
unused devices: <none>

sudo swapon --show结果:

NAME      TYPE      SIZE USED PRIO
/dev/sdb5 partition 511M 511M   -2
/dev/sdc5 partition 511M 511M   -3
/dev/sda5 partition 511M 511M   -4

我打算按照本教程https://linuxize.com/post/how-to-add-swap-space-on-ubuntu-18-04/但我害怕因为我在这里有软 raid1,我不确定如果上述说明仍然适用,或者它应该工作。

谢谢!

ubuntu partition raid swap ubuntu-18.04
  • 1 个回答
  • 475 Views
Martin Hope
Mathieu
Asked: 2020-08-12 13:50:57 +0800 CST

我需要一个 SWAP 分区吗?[复制]

  • 1
这个问题在这里已经有了答案:
交换分区应该有多大? (11 个回答)
2年前关闭。

我将使用 Ubuntu 20.04 重新制作服务器

它将具有 6 GB 的 RAM、一个用于操作系统的 20 GB SSD 和一个用于数据的 100 GB SSD。

我们应该做一个 SWAP 分区吗?

如果是这样,需要多少 GB?

谢谢

linux ubuntu partition memory swap
  • 1 个回答
  • 808 Views
Martin Hope
John the Traveler
Asked: 2020-03-27 19:23:10 +0800 CST

Linux:“主要页面错误分页”和“手动启用交换”之间的区别

  • 1

在 Linux 机器上,我们可以通过如下命令启用交换

sudo fallocate -l 500M /data/swapfile
sudo chmod 600 /data/swapfile
sudo mkswap /data/swapfile
sudo swapon /data/swapfile

但即使未启用此功能,当页面不在内存中时,内核仍会进行分页。

我们可以通过sar -B 1 30在不设置任何交换文件的机器上运行命令来验证这一点。

03:08:40 AM  pgpgin/s pgpgout/s   fault/s  majflt/s  pgfree/s pgscank/s pgscand/s pgsteal/s    %vmeff
03:08:41 AM      0.00      0.00      3.00      0.00     44.00      0.00      0.00      0.00      0.00
03:08:42 AM      0.00      0.00     19.00      0.00     30.00      0.00      0.00      0.00      0.00
03:08:43 AM      0.00      0.00      0.00      0.00      3.00      0.00      0.00      0.00      0.00
03:08:44 AM     24.00      0.00      2.00      1.00      7.00      0.00      0.00      0.00      0.00
03:08:45 AM    364.00     60.00     18.00      3.00      4.00      0.00      0.00      0.00      0.00
03:08:46 AM    140.00      0.00    392.00      2.00    243.00      0.00      0.00      0.00      0.00

仍然有majflt会触发将数据分页到磁盘。

我的问题是:

  • 我们可以说操作系统上有两种类型的交换吗?
  • 这两种机制的工作方式有何不同?
  • 如果总有分页机制在工作,为什么还需要手动启用交换?

我知道有人说:

交换是指将整个进程地址空间,或者无论如何,不​​可共享的文本数据段,一次复制到交换设备,或者复制回来(通常是磁盘)。

而分页是指复制入/出地址空间的一页或多页。特别是,这是一个更精细的粒度。例如,在 1 GB RAM 地址空间中有约 250,000 个 4 KB 页。

但是,在《Understanding the Linux Virtual Memory Manager 》一书中,Linux中似乎并非如此。

严格来说,Linux 没有交换,因为“交换”是指将整个进程地址空间复制到磁盘,而“分页”是指复制出单个页面。Linux 实际上实现了分页,因为现代硬件支持它,但传统上在讨论和文档中将其称为交换。为了与该词的 Linux 用法保持一致,我们也将其称为交换。

有人可以对此有所了解吗?谢谢!

linux swap virtual-memory
  • 2 个回答
  • 880 Views
Martin Hope
CzipO2
Asked: 2020-02-06 02:26:28 +0800 CST

暂时关闭生产数据库上的交换?

  • 0

如果我需要关闭 linux 服务器 mysql 数据库上的交换,以便增加交换的大小,数据库会发生什么情况?

数据库正在使用所有 8GB 的​​交换空间。将数据库交换增加到 16GB 的最佳方法是什么?

它有 16GB 的 RAM 和 1 的交换量,它用完了所有 8GB 的​​交换空间,它不会也吃掉 16GB 的交换空间吗?

linux mysql swap
  • 2 个回答
  • 878 Views
Martin Hope
Richard Baka
Asked: 2018-07-10 05:51:45 +0800 CST

交换可以使用许多 inode 吗?

  • 2

我有一张关于我们服务器磁盘的 inode 使用率高的图表,但我没有任何详细信息(如df -i),所以我想猜测一下原因。

  • 操作系统:红帽 Linux
  • 流程:PDF生成
swap
  • 2 个回答
  • 1088 Views
Martin Hope
Sudh33ra
Asked: 2017-03-17 03:28:21 +0800 CST

Ansible 抛出“错误!发现一名工人处于死亡状态”错误

  • 0

当我运行一个简单地将目录从一个地方复制到另一个地方的剧本时,ansible 抛出

错误!一名工人被发现处于死亡状态

错误。经过一番谷歌搜索,看起来这是由 oom-killer 杀死 ansible 进程引起的(但我不确定是否是这种情况)。我的记忆是:

              total        used        free      shared  buff/cache   available
Mem:            991         372         448           1         170         467
Swap:           511         365         146

我不知道如何解决它。我应该提一下,当我第一次执行剧本时,我只有 RAM,因为内存不足而无法运行。之后,我添加了交换。不确定它是否相关,但请注意它是交换文件,而不是单独的分区。

我在运行时观察了内存,我发现一旦运行该任务,空闲交换就会很快下降。当它达到 0 时抛出错误消息。


我正在运行以下剧本。

---
- hosts: localhost
  become: true
  become_method: sudo
  become_user: root

  vars:
    portals:
      - mysite
    contentPath: "/var/www/"
    backupPath: "/home/dataFiles/backups/"

  tasks:

    - name: backup content
      copy:
        src: "{{ contentPath }}/{{ item }}"
        dest: "{{backupPath}}/{{ item }}/{{ ansible_date_time.date }}/"
      with_items:
        - "{{ portals }}"
...

我上面给出的错误是我从ansible中得到的唯一信息。即使冗长地运行剧本也不会为此提供任何额外的东西。

memory automation swap ansible oom
  • 2 个回答
  • 11108 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve