gpt4 book ai didi

mysql - 解释 top 实用程序中的交换

转载 作者:行者123 更新时间:2023-11-29 02:14:44 25 4
gpt4 key购买 nike

我怀疑我的 MySQL 机器中有一些交换事件。我运行了“top”实用程序,它只给了我 51MB 的交换空间。

但是,当我在 top 实用程序中启用“交换”列时,它显示实际上有 12g 的交换空间被 mysqld 使用。

你能告诉我哪个是准确的信息吗?是否有交换发生?

enter image description here

最佳答案

编辑:据我所知,top 输出中的 SWAP 列实际上只是 VIRT - RES。假设部分流程已被换出。很难或不可能准确衡量给定进程使用了​​多少交换空间。

如果您使用的是 Linux 或支持 /proc 的 UNIX 版本之一,您可以使用它来获取实际用法:

cat /proc/18810/status

(其中 18810 是您的 mysqld 进程的 PID。)

它会向您显示一堆实际内存使用情况的字段。这是我的开发 VM 中 mysqld 进程的一个异常(exception):

VmPeak:  3258116 kB
VmSize: 3258116 kB
VmLck: 1416344 kB
VmHWM: 1180788 kB
VmRSS: 1180780 kB
VmData: 3189940 kB
VmStk: 88 kB
VmExe: 11608 kB
VmLib: 7312 kB
VmPTE: 2540 kB
VmSwap: 0 kB

VmSwap 为 0 表示当前没有使用任何 swap。

参见 http://man7.org/linux/man-pages/man5/proc.5.html或者只是 man 5 proc 获取其他字段的信息。手册部分说:

  • VmSwap: Swapped-out virtual memory size by anonymous private pages; shmem swap usage is not included (since Linux 2.6.34).

回复你的评论:

显然,您使用的 Linux 版本太旧,无法在每个进程状态中包含 VmSwap 字段。

您可以阅读 /proc/meminfo 并找出服务器上使用的总交换空间,但这不会告诉您每个进程。

您还可以运行 vmstat 来观察交换事件。如果“si”和“so”字段为零,则没有问题。

参见 https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/5/html/Tuning_and_Optimizing_Red_Hat_Enterprise_Linux_for_Oracle_9i_and_10g_Databases/sect-Oracle_9i_and_10g_Tuning_Guide-Swap_Space-Checking_Swap_Space_Size_and_Usage.html

关于mysql - 解释 top 实用程序中的交换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41817729/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com