当前位置: 首页 > web >正文

测试环境凌晨2点负载偏高, 2点到7点 IO 读偏高问题定位

文章目录

  • 结论
    • 内存参数优化建议
    • 进程内存占用优化
    • cdm 定时任务脚本优化
    • kswapd 运行原理图
  • 内核参数现状
  • 查看定时任务
  • 查看负载
  • 查看 CPU
  • 查看 page 问题
  • 查看内存
  • 基础知识
    • `sar -u` 中 `%idle` 列比较小代表什么?
    • `sar -q` 中 `runq-sz` 明显增长代表什么?
  • 1. 指标含义回顾
  • 2. 数据分析
      • A. 时间段内的变化
      • B. 整体判断
    • 3. 原因分析
  • 2025-3-8 号更新定位进展:
  • 后续观察, 发现修改内核参数之后 , 凌晨2 点负载还是很高,
    • 查看 osw 中 mpstat 信息
  • 查看 IOSTAT
    • 查看 pidstat
  • 优化建议

结论

2025-03-06 初步定位进展:

凌晨 2 点 cds 库表清理的有定时任务, 需要访问数据库并申请内存, 该内存占用是压死骆驼的最后一根稻草. 内存不足导致触发 kswapd, 从而导致缓存频繁回收, 并且系统长时间处于内存不足, 导致 kswapd 长时间持续活动, 持续在回收 page 页面.

2025-03-08 更新定位进展:

上次 03.06 修改内核参数之后, 03.07 凌晨 02:00 还是出现负载持续偏高问题

定位原因, 是由于 业软 is 库业务层应该有一个定时任务, 每天凌晨2:00 会启动对 is.tbl_xxx 表的大批量清理操作

但是使用的是 delete 导致消耗大量内存以及 CPU), 同时严重阻塞后续业务对该表的写操作(新建子分区等), 该操作直到 凌晨 4点才完成, 后面堵塞才缓解

image

该清理操作对应函数 func_clean_tbl_xxx 需要尽快优化下方案

58 拷机环境也存在类似问题, 但是由于 58 环境是先 oom 业务挂了, 负载降下来了,

image

然后在发生的 大表 delete ,所以负载不像 57 那样居高不下

image

而 57 是还没 oom 但是内存消耗快没了, 然后来一个大表的 delete 给搞挂了

image

内存参数优化建议

  • vm.vfs_cache_pressure=60

  • vm.dirty_background_ratio = 2

  • vm.dirty_ratio=4

  • vm.min_free_kbytes = 90000

进程内存占用优化

image

cdm 定时任务脚本优化

1 2 * * * root flock -xn /tmp/autoclean_cdm_sub_table.lock   -c /usr/local/bin/autoclean_cdm_sub_table.sh >/dev/null 2>&1

kswapd 运行原理图

image

内核参数现状

vm.min_free_kbytes = 67584 保证系统至少保留约 67MB 的空闲内存。对大内存系统来说,这个值可能偏低,当内存紧张时,容易触发页面回收。

vm.vfs_cache_pressure = 100 默认值,表示内核在内存紧张时会比较积极地回收 inode/dentry 缓存。这可能导致缓存被过早回收,从而增加页面扫描和“窃取”压力。

vm.dirty_ratio = 60 与 vm.dirty_background_ratio = 10 允许系统在内存中累积较多(高达 60%)的脏页才开始强制写回磁盘,而达到 10% 时仅启动后台写回。dirty_ratio 过高可能导致大量脏页长期滞留,等到系统压力增大时一次性大量刷新,进一步加剧内存和 I/O 压力。

查看定时任务

cat /etc/crontab59 23 * * * root /usr/local/bin/bk_pglog.sh >/dev/null 2>&1
1 2 * * * root flock -xn /tmp/autoclean_cdm_sub_table.lock   -c /usr/local/bin/autoclean_cdm_sub_table.sh >/dev/null 2>&1
6 2 * * * root flock -xn /tmp/autoclean_operlog_and_event_record_cdm.lock -c /usr/local/bin/autoclean_operlog_and_event_record_cdm.sh >/dev/null 2>&1*/2 * * * * root /usr/local/sbin/mp_recovdiskspath.sh >/dev/null 2>&1*/10 * * * * root /bin/sh /usr/local/bin/ipConflictDetect.sh >/dev/null 2>&1*/10 * * * * root /bin/sh /usr/local/bin/ethInfo.sh >/dev/null 2>&130 1 * * * root /usr/local/bin/autoclean.sh >/dev/null 2>&1*/20 * * * * root /usr/local/bin/cleanhttpdlog.sh >/dev/null 2>&130 0 * * * root /program/bin/autoclean_vmlog.sh >/dev/null 2>&1
30 2 * * * root flock -xn /tmp/autoclean_ums_sub_table.lock   -c /program/bin/autoclean_ums_sub_table.sh >/dev/null 2>&1
* * * * * root python /home/collect/nodeDaemon.py
00 23 * * * root sh /home/SSD_smartctl/Collect_SSD_SmartctlInfo.sh

查看负载

02:00:00 负载明显增高, runq-sz 运行进程数明显增高

sar -q -e "04:00:00"01:22:02 AM   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked
01:24:01 AM        12      6128     12.74     17.84     26.02         1
01:26:02 AM        35      6138     19.14     19.46     25.66         1
01:28:02 AM        28      6135     18.07     19.07     24.76         0
01:30:01 AM        10      6156     10.66     16.30     23.08         0
01:32:01 AM        28      6140      9.87     15.56     22.09         0
01:34:01 AM         4      6129     12.00     14.37     20.85         0
01:36:02 AM        55      6117     10.30     13.52     19.79         0
01:38:01 AM         3      6128     16.83     14.52     19.36         0
01:40:02 AM        22      6142     15.17     13.97     18.53         1
01:42:01 AM        13      6132     26.22     17.04     18.99         0
01:44:01 AM         8      6140     15.26     15.66     18.22         0
01:46:01 AM         5      6135     10.84     13.80     17.23         1
01:48:01 AM         9      6155     13.21     14.25     17.00         2
01:50:01 AM        33      6161     10.59     12.94     16.18         0
01:52:01 AM         3      6131     15.84     13.65     16.01         0
01:54:02 AM         0      6122     11.89     13.65     15.77         3
01:56:01 AM         5      6133      9.06     11.79     14.82         0
01:58:02 AM         3      6134      5.18      9.38     13.57         0
02:00:02 AM        85      6155     10.72      9.65     13.13         0
02:02:02 AM        59      6146     47.31     24.27     18.09         0
02:04:02 AM        32      6138     59.02     36.18     23.21         0
02:06:03 AM        75      6164     64.89     46.36     28.52         2
02:08:01 AM        46      6168     63.75     52.60     33.02         0
02:10:03 AM        50      6181     59.33     54.44     36.04         0
02:12:03 AM        58      6163     69.92     60.11     40.34         0
02:14:01 AM        57      6183     70.88     63.76     44.07         0
02:16:03 AM        51      6166     62.77     62.74     46.07         1
02:18:02 AM        51      6166     60.63     61.68     47.70         1
02:20:02 AM        67      6174     64.13     62.98     49.89         0

查看 CPU

02:00 开始 , 系统占用 CPU 明显增长,

sar -u -e "04:00:00"
1:22:02 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
01:24:01 AM     all     25.78      0.00     48.15      2.19      0.00     23.89
01:26:02 AM     all     33.09      0.00     50.33      0.77      0.00     15.81
01:28:02 AM     all     31.41      0.00     49.12      1.61      0.00     17.86
01:30:01 AM     all     26.79      0.00     49.22      1.54      0.00     22.45
01:32:01 AM     all     29.46      0.00     52.87      1.25      0.00     16.41
01:34:01 AM     all     25.79      0.00     48.44      1.79      0.00     23.98
01:36:02 AM     all     26.06      0.00     48.30      2.12      0.00     23.52
01:38:01 AM     all     27.34      0.00     48.65      1.33      0.00     22.68
01:40:02 AM     all     26.22      0.00     48.57      2.06      0.00     23.15
01:42:01 AM     all     29.70      0.00     49.65      1.18      0.00     19.46
01:44:01 AM     all     27.32      0.00     48.73      1.99      0.00     21.96
01:46:01 AM     all     25.15      0.00     48.59      2.45      0.00     23.82
01:48:01 AM     all     28.51      0.00     49.47      1.37      0.00     20.65
01:50:01 AM     all     24.63      0.00     48.27      0.85      0.00     26.24
01:52:01 AM     all     25.15      0.00     49.60      1.45      0.00     23.79
01:54:02 AM     all     27.87      0.00     48.97      2.68      0.00     20.47
01:56:01 AM     all     26.08      0.00     48.29      1.28      0.00     24.35
01:58:02 AM     all     24.59      0.00     48.58      0.97      0.00     25.86
02:00:02 AM     all     25.84      0.06     48.29      1.12      0.00     24.69
02:02:02 AM     all     33.43      0.00     66.02      0.24      0.00      0.31
02:04:02 AM     all     32.67      0.00     66.96      0.11      0.00      0.26
02:06:03 AM     all     32.43      0.00     67.14      0.12      0.00      0.31
02:08:01 AM     all     33.37      0.00     66.04      0.30      0.00      0.29
02:10:03 AM     all     32.69      0.00     66.87      0.12      0.00      0.32
02:12:03 AM     all     32.08      0.00     67.02      0.58      0.00      0.32
02:14:01 AM     all     32.55      0.00     66.72      0.41      0.00      0.32
02:16:03 AM     all     32.66      0.00     66.39      0.63      0.00      0.32
02:18:02 AM     all     32.77      0.00     66.76      0.13      0.00      0.33
02:20:02 AM     all     32.56      0.00     67.01      0.09      0.00      0.34
02:22:03 AM     all     32.59      0.00     66.79      0.28      0.00      0.34
02:24:03 AM     all     32.64      0.00     66.91      0.08      0.00      0.37
02:26:01 AM     all     32.66      0.00     66.51      0.51      0.00      0.32
02:28:03 AM     all     33.00      0.00     66.55      0.10      0.00      0.35
02:30:03 AM     all     33.09      0.00     66.45      0.17      0.00      0.29
02:32:01 AM     all     32.41      0.00     67.24      0.11      0.00      0.24
02:34:02 AM     all     33.17      0.00     65.85      0.66      0.00      0.32
02:36:02 AM     all     32.80      0.00     66.53      0.36      0.00      0.31
02:38:01 AM     all     33.12      0.00     66.50      0.09      0.00      0.29
02:40:03 AM     all     32.35      0.00     66.42      0.90      0.00      0.33
02:42:02 AM     all     32.46      0.00     67.13      0.09      0.00      0.33
02:44:01 AM     all     32.66      0.00     66.77      0.22      0.00      0.35

2:00 开始 CPU 空闲减少

查看 page 问题

发现 02:00 到 07:00 期间存在 pgscank 与 pgscand, 说明是内存问题导致触发 kswapd, 此时需要释放 page 缓存, 导致 IO 占用持续偏高

image

sar -B -e "04:00:00"01:22:02 AM  pgpgin/s pgpgout/s   fault/s  majflt/s  pgfree/s pgscank/s pgscand/s pgsteal/s    %vmeff
01:24:01 AM   5197.99   8962.91  16615.99      0.02  28313.34      0.00      0.00      0.00      0.00
01:26:02 AM   5776.11   9348.54  16384.63      0.34  27920.66      0.00      0.00      0.00      0.00
01:28:02 AM   5660.17   9022.45  17374.45      0.03  28826.93      0.00      1.49      2.95    197.77
01:30:01 AM   5232.28   9176.93  17427.27      0.04  28514.83      0.00      1.93      3.79    196.54
01:32:01 AM   5524.08   9348.81  19395.81      0.10  30262.41      0.00      0.57      1.14    200.00
01:34:01 AM   5374.02   9144.33  17878.34      0.11  29316.86      0.00      0.00      0.00      0.00
01:36:02 AM   5322.65   9117.79  17016.48      0.04  28740.85      1.88      0.00      3.74    199.12
01:38:01 AM   5186.11   9183.83  18239.23      0.03  29957.52      9.66      0.00     19.15    198.27
01:40:02 AM   5195.23   9079.21  18039.58      0.04  29703.21     86.09      1.19    170.81    195.69
01:42:01 AM   5324.29   9080.17  17994.31      0.23  28940.35      0.00      0.00      0.00      0.00
01:44:01 AM   5194.28   8994.48  17408.72      0.12  28212.68    345.12      5.90    592.10    168.68
01:46:01 AM   5973.30   9217.72  17314.27      0.04  29737.08     41.51      0.00     70.32    169.41
01:48:01 AM   5378.81   9491.00  16858.73      0.03  28213.15      0.00      0.00      0.00      0.00
01:50:01 AM   5191.45   9088.72  17162.74      0.02  28138.39      0.00      0.00      0.00      0.00
01:52:01 AM   5269.94   9105.51  19368.25      0.37  31037.74    425.58      5.63    737.83    171.11
01:54:02 AM   5353.49   9089.87  17064.41      0.06  28150.74      0.00      0.47      0.91    192.98
01:56:01 AM   5195.24   9014.21  17970.55      0.07  29250.91      0.00      1.73      3.27    189.32
01:58:02 AM   5225.45   9247.76  16555.74      0.07  27930.67      0.00      1.93      3.61    187.12
02:00:02 AM   7284.79   9048.23  18575.01      0.85  29273.32      0.00      0.50      0.90    180.00
02:02:02 AM 189252.71  10174.79  32390.86     25.80  73761.14  49356.13     41.34  94827.21    191.97
02:04:02 AM 218484.27  10045.40  28107.72     33.51  80492.35  56097.09     43.25 107284.64    191.10
02:06:03 AM 230998.35   9599.70  25345.68     38.18  81694.88  60267.96     64.20 114448.15    189.70
02:08:01 AM 211964.52  10349.74  26996.94     26.62  78372.10  53526.92     55.41 102873.41    191.99
02:10:03 AM 228379.63   9752.52  25365.53     33.74  82086.15  59378.80     21.28 113266.34    190.68
02:12:03 AM 241380.13   9993.21  30543.66     30.92  84235.03  61701.80     23.41 118260.62    191.59
02:14:01 AM 226257.52  10118.29  26532.18     34.73  81142.41  59086.91     44.96 112637.06    190.48
02:16:03 AM 209136.49   9917.97  25057.04     32.77  76652.65  54043.41     14.20 102686.89    189.96
02:18:02 AM 233901.26   9667.18  27978.27     32.09  82932.48  58692.98     38.16 112416.83    191.41
02:20:02 AM 229530.14   9942.72  27076.34     33.81  82376.01  60593.30     50.81 115770.89    190.90
02:22:03 AM 233204.72   9930.71  26341.81     32.97  83280.90  60277.48      4.27 115139.57    191.00
02:24:03 AM 239393.21   9933.52  27168.23     34.53  83589.13  61314.83     19.96 117042.01    190.82
02:26:01 AM 232571.40  10016.68  26313.18     31.68  81516.45  59768.64     53.41 114499.76    191.40
02:28:03 AM 229378.18   9784.37  26250.88     31.77  81477.82  59597.74     25.85 113784.65    190.84
02:30:03 AM 230133.94   9970.47  26489.17     31.70  82183.64  59457.25     19.99 113822.40    191.37
02:32:01 AM 234821.13  10055.31  28269.88     37.04  82730.06  60583.08     24.96 115273.12    190.19
02:34:02 AM 221019.07   9956.49  25605.65     34.49  79562.33  56759.21     32.40 107979.84    190.13
02:36:02 AM 224352.33  10105.14  25996.27     34.10  80373.11  58697.44      6.97 111769.16    190.39
02:38:01 AM 234936.71  10110.21  24433.12     38.55  81955.74  61220.37     26.05 116024.26    189.44
02:40:03 AM 223907.10   9775.57  26128.79     41.69  80267.52  58990.98     24.90 111397.45    188.76
02:42:02 AM 239132.01  10023.27  25605.48     41.59  83134.61  61992.12     37.02 117352.28    189.19
02:44:01 AM 230924.98   9975.85  25420.24     39.88  81345.45  60502.43     12.12 114437.09    189.1102:44:01 AM  pgpgin/s pgpgout/s   fault/s  majflt/s  pgfree/s pgscank/s pgscand/s pgsteal/s    %vmeff
02:46:02 AM 238002.19  10106.32  24647.07     39.92  83340.16  60692.26     24.90 115013.93    189.43
02:48:02 AM 220620.87   9861.94  27666.17     30.60  79866.84  57975.91     38.07 110987.62    191.31
02:50:02 AM 237934.01  10110.24  25626.61     41.30  83163.40  62408.98      5.33 118106.07    189.23
02:52:02 AM 231019.44   9682.03  26945.00     39.41  81273.75  59929.54     18.53 113393.13    189.15
02:54:03 AM 241209.98   9766.25  25781.26     40.85  83492.84  63108.57     47.89 119606.99    189.38
02:56:03 AM 223677.69  10169.80  27866.89     27.99  81718.18  56833.91      1.59 109195.96    192.13
02:58:02 AM 227169.85   9817.44  28290.39     26.46  81549.42  58360.46     37.98 112280.15    192.27
03:00:02 AM 231550.85  10271.28  26461.50     37.04  82331.34  59929.79     25.79 113947.48    190.05
03:02:02 AM 223198.66   9949.42  27408.65     34.37  80629.09  57973.47      8.15 110855.73    191.19
03:04:02 AM 219460.19   9666.38  27841.13     34.36  81003.23  55149.13     14.89 105297.13    190.88
03:06:02 AM 222626.78  10081.77  28173.44     33.45  81308.11  58651.44     25.35 112276.17    191.35
03:08:02 AM 238410.49   9897.31  26881.08     41.07  83930.03  61767.93      8.27 116981.74    189.36
03:10:03 AM 242434.09   9884.06  29949.08     32.70  85673.65  62719.31      7.16 120350.26    191.87
03:12:02 AM 233375.77  10324.49  25728.75     40.48  82020.68  59508.98     36.84 112645.34    189.17
03:14:02 AM 234429.24   9785.98  28687.43     32.54  83799.83  61027.26     58.08 116833.24    191.26
03:16:03 AM 225610.56   9923.69  28841.22     32.48  83285.60  59028.31     43.88 112627.30    190.66
03:18:02 AM 244119.63  10058.98  26331.91     43.88  84548.25  63941.18     25.80 120810.13    188.86
03:20:02 AM 244111.47   9832.89  25594.48     39.57  84609.59  63122.45     22.25 119846.21    189.80
03:22:03 AM 241499.87  10073.44  28205.16     36.45  84602.94  63207.27     10.52 120271.51    190.25
03:24:02 AM 249006.40  10074.26  25401.11     44.07  85489.76  65056.09     33.50 123011.32    188.99
03:26:01 AM 224998.55  10076.51  26649.14     35.99  80176.13  58457.10     31.04 110944.51    189.69
03:28:02 AM 233062.88   9754.27  25705.78     34.83  82149.05  60089.79      9.99 114663.11    190.79
03:30:02 AM 245434.52  10186.91  29012.09     39.02  85254.84  64420.01     34.26 122533.59    190.11
03:32:01 AM 223906.64  10024.98  24205.33     41.89  79920.52  58551.77    194.05 110782.48    188.58
03:34:00 AM 234453.97   9981.27  26223.96     38.66  83118.99  60187.94     71.72 114468.45    189.96
03:36:00 AM 242870.35  10006.33  28066.29     39.98  84809.23  63950.93     35.84 121496.33    189.88
03:38:00 AM 237378.79   9760.39  26178.37     38.27  83716.84  60505.33    292.77 115583.27    190.11
03:40:01 AM 238217.29   9974.79  29025.71     27.74  84300.41  61444.52    131.32 118425.92    192.33
03:42:00 AM 229421.89   9841.09  27677.59     32.18  81535.93  59353.38    106.25 113903.44    191.56
03:44:00 AM 235659.42  10047.12  25874.01     35.26  82483.92  61042.97     90.44 116498.42    190.56
03:46:00 AM 241568.12  10073.08  27174.38     36.93  84791.50  62850.90     99.68 120080.86    190.75
03:48:00 AM 232770.73  10253.98  25452.63     40.25  81795.15  60811.40    135.36 115170.04    188.97
03:50:00 AM 241255.46   9669.60  29348.67     33.99  86673.51  62119.65    185.05 119198.77    191.32
03:52:03 AM 232807.11  10080.56  26700.93     38.28  82666.78  60792.32    200.79 115848.73    189.94
03:54:02 AM 240074.97   9994.40  27227.26     37.88  85098.61  60460.08    181.21 115401.71    190.30
03:56:01 AM 236421.34   9958.10  29824.68     28.25  83978.98  61895.20     88.65 119413.33    192.65
03:58:02 AM 231771.83  10013.60  25949.87     39.11  82607.85  60249.79    106.26 114344.98    189.45
04:00:02 AM 229500.17   9903.87  27395.63     31.80  83062.03  59326.86     68.80 113764.42    191.54
04:02:03 AM 230452.00   9759.34  27793.68     39.46  82901.07  60075.99    113.85 114689.69    190.55
04:04:03 AM 224710.17  10205.16  28433.91     34.60  81975.87  57481.58    123.43 110338.50    191.54
04:06:03 AM 241778.75   9765.10  28372.75     40.20  84776.71  62776.29    216.96 119717.78    190.0504:06:03 AM  pgpgin/s pgpgout/s   fault/s  majflt/s  pgfree/s pgscank/s pgscand/s pgsteal/s    %vmeff
04:08:01 AM 233101.45  10365.24  26305.21     37.81  82234.57  61037.16    188.17 116325.80    190.00
04:10:02 AM 240311.68  10013.63  25938.92     39.22  85335.97  62084.00    334.47 118758.98    190.26
04:12:02 AM 245208.51   9839.95  32519.90     36.62  85229.01  62681.56    123.82 119849.75    190.83
04:14:01 AM 221905.97  10125.72  28473.03     29.23  81392.67  57271.75    105.51 110081.62    191.86
04:16:02 AM 227635.44  10053.32  26712.28     31.78  81607.70  58923.44    150.74 112969.84    191.23
04:18:03 AM 232821.37  10135.33  26712.10     33.64  82706.98  60737.86     76.16 116096.56    190.90
04:20:01 AM 248850.05  10160.20  28600.56     37.67  86426.67  64564.03    160.21 123516.74    190.84
04:22:02 AM 237825.67   9993.54  27288.90     37.66  84139.40  61422.50     98.56 116847.89    189.93
04:24:02 AM 238897.51   9667.63  25805.79     41.19  83736.15  61810.78    144.56 117505.05    189.66
04:26:01 AM 232233.23   9969.08  27079.09     30.11  82030.69  59962.32     74.56 115036.22    191.61
04:28:02 AM 234745.18   9946.47  28970.80     32.91  83315.84  60192.44     60.77 115313.89    191.38
04:30:02 AM 237817.56  10244.07  27165.61     37.17  84184.15  62851.59     90.94 119819.70    190.36
04:32:01 AM 241009.01   9819.85  26075.21     42.97  83994.15  62851.04     90.07 118856.93    188.84
04:34:02 AM 240051.76   9955.12  26192.98     44.94  83964.55  63016.13    132.51 119425.27    189.12
04:36:02 AM 237526.45  10134.25  29232.92     36.04  85236.54  61287.33    122.06 116910.80    190.38
04:38:01 AM 242488.23   9784.50  27813.07     32.88  85336.99  61944.99     86.59 118839.59    191.58
04:40:03 AM 226001.18  10157.62  26915.20     30.51  81469.86  59002.73     52.98 113058.47    191.44
04:42:03 AM 248341.21  10020.78  26961.68     42.25  85495.21  64941.33    104.98 123125.80    189.29
04:44:01 AM 234305.48  10034.61  26924.33     32.76  83295.65  59669.80     90.40 114074.38    190.89
04:46:02 AM 229100.70   9935.06  27181.63     30.43  82840.36  59711.23     78.06 114801.76    192.01
04:48:03 AM 240222.94   9937.87  27726.01     39.92  83798.38  62537.02     94.81 118788.57    189.66
04:50:01 AM 242674.18   9918.65  26952.65     41.13  84137.77  63166.38    149.06 120096.31    189.68
04:52:03 AM 235939.21  10033.71  27766.58     33.14  84481.86  60839.02    103.19 116603.80    191.34
04:54:03 AM 242067.12  10092.30  25993.42     42.84  84011.13  63307.98    149.41 119953.33    189.03
04:56:01 AM 244903.34  10077.13  28636.87     36.73  85818.55  62872.08    121.32 120335.34    191.03
04:58:03 AM 234622.73   9777.53  25967.34     37.18  82899.27  60666.31     93.03 115655.27    190.35
05:00:02 AM 235600.47  10345.94  28591.42     30.43  83439.71  61030.55     77.94 117225.12    191.83
05:02:02 AM 219914.64   9977.76  26779.04     39.64  80187.65  57113.41     76.53 108464.10    189.66
05:04:02 AM 232141.99  10081.78  28662.98     36.47  83489.02  58897.98    162.95 112835.98    191.05
05:06:02 AM 225313.15  10014.13  28734.71     30.68  81159.48  58471.16     73.73 112240.70    191.72
05:08:01 AM 234743.01   9982.53  26111.58     32.65  82848.00  60950.23     66.97 116706.76    191.27
05:10:02 AM 236861.23   9737.32  26279.13     37.16  83419.54  61659.58     93.87 117670.70    190.55
05:12:02 AM 257445.98   9942.30  31335.46     43.82  89062.96  67117.62    162.01 127706.19    189.81
05:14:01 AM 235897.69   9950.72  26824.27     32.63  83784.62  59997.47     85.08 114976.82    191.36
05:16:03 AM 240280.61  10257.12  29852.94     34.71  84839.55  63139.94     69.74 120596.54    190.79
05:18:02 AM 228226.70   9903.02  26080.90     33.85  81330.23  59111.94     58.32 112864.54    190.75
05:20:02 AM 239115.17   9588.28  25675.70     38.95  84006.22  62443.02    111.68 118862.88    190.01
05:22:02 AM 250500.43  10172.64  28447.65     41.47  86368.10  65427.21    126.29 124402.33    189.77
05:24:03 AM 230284.04   9895.45  26810.08     29.20  81578.02  58928.07     63.02 113128.02    191.77
05:26:03 AM 237537.76  10237.31  27772.67     33.43  83578.56  62148.57     59.43 118997.75    191.29
05:28:03 AM 239415.58   9983.71  28018.71     34.10  83705.34  61396.23     91.04 117305.62    190.7805:28:03 AM  pgpgin/s pgpgout/s   fault/s  majflt/s  pgfree/s pgscank/s pgscand/s pgsteal/s    %vmeff
05:30:02 AM 233277.87  10030.98  27686.62     29.35  83399.72  59768.36     45.96 114875.28    192.05
05:32:01 AM 225000.72   9792.32  28940.49     25.24  81634.31  58568.28     41.38 112981.52    192.77
05:34:02 AM 237316.95   9835.89  27996.06     36.49  83751.73  62032.89    120.74 118565.09    190.76
05:36:02 AM 235168.83  10113.23  27195.59     34.04  83867.75  61051.28     64.80 116686.22    190.93
05:38:01 AM 238818.71  10149.21  26255.13     42.59  83170.41  62550.59     48.17 118276.42    188.94
05:40:02 AM 244402.45   9988.58  30077.13     37.31  86102.27  63151.43     35.57 120573.84    190.82
05:42:02 AM 234156.62   9827.40  28627.90     29.83  84745.94  60303.61     39.48 115806.77    191.91
05:44:01 AM 246970.27   9869.97  27520.38     40.29  85220.67  65345.46     27.43 123906.08    189.54
05:46:02 AM 244890.62  10072.72  27067.37     35.20  84815.79  63109.99     46.48 120409.36    190.65
05:48:02 AM 234034.87  10345.99  26027.64     37.24  82773.29  61534.98     55.52 117039.50    190.03
05:50:02 AM 251526.82  10047.00  29435.66     40.56  86580.22  64880.97     56.39 123443.35    190.10
05:52:03 AM 233780.51   9870.99  27794.69     32.51  83507.02  61389.35     24.28 117537.68    191.39
05:54:02 AM 231386.82   9709.62  27066.61     31.24  83104.24  58801.06     35.43 112814.97    191.74
05:56:01 AM 236922.66  10030.96  30059.99     28.95  83566.03  60628.26     16.51 116667.08    192.38
05:58:03 AM 229653.29   9949.14  27248.71     28.40  82292.78  59999.12      7.08 115315.87    192.17
06:00:02 AM 241505.05  10037.93  30024.52     31.35  84713.55  62007.10     26.35 119085.74    191.97
06:02:02 AM 224384.97   9953.54  27913.74     39.16  81692.50  58828.97     48.23 111949.16    190.14
06:04:02 AM 233746.12  10128.73  29192.96     46.88  84021.12  61812.74     90.66 117044.22    189.08
06:06:02 AM 237397.14   9688.08  26574.03     44.82  83004.02  62373.45     45.88 117778.56    188.69
06:08:02 AM 249827.53   9936.75  26454.45     45.72  86161.92  65876.90     34.23 124482.06    188.86
06:10:02 AM 260096.81  10208.11  29197.67     46.29  88512.01  67945.65     69.25 128465.82    188.88
06:12:03 AM 255058.62  10072.45  31025.57     38.46  88240.47  66423.03     42.24 126800.00    190.78
06:14:01 AM 229233.76  10116.64  26477.40     36.06  81513.62  59938.56     37.04 114017.47    190.11
06:16:02 AM 246570.64   9893.14  27070.19     33.72  85387.28  63171.07     17.21 120812.82    191.19
06:18:03 AM 237711.68   9646.60  28618.25     31.12  83525.98  62264.86      2.64 119233.42    191.49
06:20:02 AM 236076.57   9978.51  26518.49     32.13  83483.49  60294.70      8.10 115112.72    190.89
06:22:03 AM 245261.17  10098.34  30431.90     39.43  86399.12  65574.00     61.04 124866.00    190.24
06:24:02 AM 232883.24  10030.37  27267.64     29.37  82441.77  59645.27      6.92 114457.26    191.87
06:26:01 AM 220228.08  10015.37  26907.63     28.21  79572.37  56200.03     12.91 107727.03    191.64
06:28:02 AM 237427.74   9606.56  28608.55     34.90  84022.36  62480.91     31.99 119331.94    190.89
06:30:02 AM 232508.83  10254.05  28598.24     30.91  83170.78  60405.27     11.26 115690.95    191.49
06:32:01 AM 238702.99  10018.20  26323.54     44.89  83198.29  63203.64     66.50 119190.21    188.38
06:34:02 AM 233824.23  10264.17  26305.45     44.89  82856.43  61041.31     21.28 114972.70    188.29
06:36:02 AM 227738.85  10043.34  27262.47     35.36  82498.15  59194.48     35.04 112684.17    190.25
06:38:01 AM 239906.51   9802.22  28015.03     29.57  84207.19  61942.64     51.46 119085.98    192.09
06:40:02 AM 238539.89   9754.92  31019.26     32.33  85177.92  62174.44     20.83 119067.28    191.44
06:42:03 AM 252831.03   9810.89  25741.69     52.49  86985.91  66555.39     14.44 124899.24    187.62
06:44:01 AM 237782.92  10293.87  28541.14     29.07  83744.04  61745.41     16.24 118498.39    191.86
06:46:03 AM 241035.41  10174.72  26673.17     48.68  84196.49  64229.37     74.13 120578.33    187.51
06:48:02 AM 254104.01  10212.46  26348.00     51.55  86882.88  67165.42     42.23 126181.91    187.75
06:50:02 AM 243855.51   9781.26  26393.60     40.36  85227.87  63287.06     19.99 119999.70    189.5506:50:02 AM  pgpgin/s pgpgout/s   fault/s  majflt/s  pgfree/s pgscank/s pgscand/s pgsteal/s    %vmeff
06:52:03 AM 236778.85   9936.51  28164.80     34.30  83144.60  60902.57     22.05 116351.63    190.98
06:54:03 AM 228624.59  10001.85  27121.60     26.22  81313.52  58917.05     20.27 113513.22    192.60
06:56:02 AM 242141.83  10334.42  26284.08     41.85  84604.74  64325.78     36.33 122116.31    189.73
06:58:02 AM 260110.85   9922.25  28821.85     47.54  88732.23  67674.04     96.83 127918.45    188.75
07:00:02 AM 228506.74  10422.04  27445.33     35.18  82592.00  60381.47     38.99 114975.43    190.29
07:02:03 AM 232661.58   9950.82  27727.71     38.81  83969.87  60201.00    111.29 115110.59    190.86
07:04:01 AM 161202.37   9837.33  25053.22     35.42  66581.70  41823.88     30.02  78782.80    188.23
07:06:02 AM   5187.08   9396.16  15228.58      1.14  29231.25    540.96      2.82    872.72    160.49
07:08:01 AM   3631.99   9197.18  17131.18      0.14  28442.76      9.03      1.50     17.76    168.61
07:10:01 AM   3477.28   8922.05  17963.02      0.09  27932.44      0.00      1.05      1.20    114.29
07:12:01 AM  47121.20   9728.15  26507.58      5.50  42616.80  11248.94     27.55  21214.01    188.13
07:14:01 AM   4516.58   9048.75  17825.01      0.41  29285.96    429.57      3.18    814.16    188.14
07:16:01 AM   4273.04   9538.29  17832.47      0.31  30016.55    574.89      3.13   1104.53    191.09
07:18:02 AM   4489.83   9142.78  17973.13      0.43  28578.88     51.29      1.75     96.61    182.15
07:20:01 AM   3418.54   9130.28  16962.25      0.06  27137.98      3.93      1.74     11.29    199.41
07:22:02 AM   3440.73   9235.76  17834.96      0.08  28024.22      0.00      1.99      3.95    198.34
07:24:01 AM   3444.53   8971.70  17571.87      0.03  27676.88      3.51      2.42     11.83    199.44
07:26:02 AM   3425.76   9249.26  16715.59      0.09  26878.55      4.03      1.34     10.72    199.38
07:28:01 AM   3362.68   9000.07  17378.52      0.02  27288.74      3.70      2.35     12.02    198.62
07:30:01 AM   3408.72   9225.47  17384.66      0.04  27463.07      4.49      0.56      7.87    155.96
07:32:01 AM   3366.41   9218.28  17124.26      0.05  27755.90     66.11      3.84    123.55    176.63
07:34:01 AM   3367.40   9113.57  17730.39      0.08  27984.11     13.29      1.90     29.83    196.38
07:36:02 AM   3454.11   9486.30  18151.06      0.34  30118.72    674.26      1.77   1210.97    179.13
07:38:01 AM   3492.41   9065.79  18288.06      0.09  28498.76     11.44      0.43     21.37    180.06
07:40:02 AM   3419.26   9030.56  19098.42      0.07  29079.02      0.69      2.00      5.17    192.62
07:42:01 AM   3402.16   9127.07  18551.14      0.02  28442.76      0.00      0.44      0.85    192.45
07:44:01 AM   3380.39   9052.03  18033.27      0.03  28865.92      0.00      1.94      2.79    143.72
07:46:02 AM   3371.31   9276.79  18777.45      0.12  29861.42    167.48      6.43    280.81    161.46
07:48:01 AM   3366.51   9292.77  18849.36      0.03  28941.81      7.91      0.77     16.31    187.85
07:50:01 AM   3359.75   8990.85  17269.16      0.02  27833.15      2.94      1.91      9.65    198.97
07:52:01 AM   3362.93   9298.53  17994.08      0.03  27868.62      0.00      2.05      4.09    199.19
07:54:02 AM   3397.59   9119.10  17923.21      0.04  27663.33      3.47      1.11      9.11    198.91
07:56:01 AM   3554.61   9136.15  18658.38      0.11  29453.99     52.65      2.99     97.93    176.00
07:58:02 AM   3374.40   9268.72  17117.21      0.02  27759.90      4.97      1.26     12.00    192.83
Average:    152336.17   9795.84  23897.51     23.16  63874.82  39110.58     43.05  74588.98    190.50

查看内存

sar -r 
01:22:02 AM kbmemfree   kbavail kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty
01:24:01 AM    919300   2116256  11229968     73.18     19628   2601100  25413940    165.61   1749220  11596944      4172
01:26:02 AM    741004   2014832  11331392     73.84     20832   2675620  25507120    166.22   1752308  11759772      7312
01:28:02 AM    667096   2025712  11320260     73.77     21956   2758692  25498896    166.16   1755248  11829088     10840
01:30:01 AM    608236   2003996  11352056     73.98     23332   2784200  25555892    166.54   1753300  11897068      8840
01:32:01 AM    595184   2030492  11325672     73.80     35276   2807740  25518348    166.29   1768372  11894132      8900
01:34:01 AM    481108   1964516  11392628     74.24     36188   2852460  25575340    166.66   1768788  12005520      8156
01:36:02 AM    575956   2104280  11278172     73.49     37060   2870828  25451556    165.86   1765224  11925748      6528
01:38:01 AM    592504   2132416  11250200     73.31     37920   2883320  25420508    165.65   1765856  11906952     10244
01:40:02 AM    650592   2161648  11220872     73.12     38728   2853140  25391784    165.47   1767404  11829348      7116
01:42:01 AM    505244   2054924  11327404     73.82     39568   2890184  25489768    166.10   1769496  11973488      5244
01:44:01 AM    269004   1649652  11728592     76.43     40276   2777756  25912876    168.86   1789196  12240620     10048
01:46:01 AM    545732   1976104  11402492     74.30     41168   2773448  25611456    166.90   1790032  11927512      9020
01:48:01 AM    502328   1971804  11414128     74.38     42128   2802708  25572468    166.64   1791948  11933896      7968
01:50:01 AM    592580   2072784  11313816     73.73     42984   2812044  25547736    166.48   1851968  11806988      7592
01:52:01 AM    726844   2055608  11331048     73.84     42964   2662704  25517340    166.28   1858256  11686604      5724
01:54:02 AM    479576   1853456  11533300     75.16     44304   2705800  25702032    167.49   1864856  11921664      4128
01:56:01 AM    530980   1908940  11477652     74.79     45132   2709312  25661788    167.23   1866556  11874888     11164
01:58:02 AM    665816   2066052  11320484     73.77     46080   2731168  25466888    165.96   1867928  11721364      9576
02:00:02 AM    485116   2130736  11258396     73.37     47228   2972324  25466696    165.95   1871200  11905352      8340
02:02:02 AM    163004   1205004  12108720     78.91      3484   2575820  26376520    171.88   1608756  12590604      3384
02:04:02 AM    174036   1245096  12073000     78.67      3756   2601012  26328988    171.57   1628384  12551392      4000
02:06:03 AM    160036   1109920  12207420     79.55      8528   2476948  26474536    172.52   1632328  12561076      5852
02:08:01 AM    171196   1395400  11922832     77.70      5876   2752580  26147336    170.39   1619352  12560580      2588
02:10:03 AM    384704   1398544  11918892     77.67      5040   2544660  26209052    170.79   1620072  12312864      1932
02:12:03 AM    158564   1362544  11953328     77.89      3116   2738768  26209880    170.80   1625792  12548276      1528
02:14:01 AM    174840   1064188  12253740     79.85      2864   2422688  26530516    172.89   1595276  12563420      2124
02:16:03 AM    165512   1064804  12251400     79.84      3756   2433388  26504212    172.72   1607956  12558132      2992
02:18:02 AM    160564   1680704  11636956     75.83      4364   3051592  25862460    168.53   1664516  12511632      6492
02:20:02 AM    180260   1048808  12269228     79.95      5200   2400208  26568992    173.14   1615472  12537720      2088
02:22:03 AM    232324   1065548  12252256     79.84      2844   2366884  26476536    172.54   1627636  12462956      4204
02:24:03 AM    170280   1254088  12062000     78.60      3756   2618496  26329284    171.58   1598228  12559532      1712
02:26:01 AM    174760   1270892  12046092     78.50      3656   2629308  26281916    171.27   1600552  12531068      1668
02:28:03 AM    216524   1150316  12165936     79.28      6068   2464716  26418608    172.16   1623644  12469664      6712
02:30:03 AM    167808   1047196  12269556     79.95      9176   2407472  26505328    172.72   1631932  12528604       824
02:32:01 AM    157120   1056048  12261244     79.90      3572   2432008  26491868    172.64   1601660  12572752       484
02:34:02 AM    177936   1319512  11996212     78.17      3504   2676724  26218840    170.86   1591368  12558268      2212
02:36:02 AM    157956   1050420  12266740     79.94      3676   2426404  26479576    172.55   1592828  12578020      1040
02:38:01 AM    154748   1046572  12270288     79.96      3532   2425544  26517652    172.80   1625680  12550472      5000
02:40:03 AM    171892    916740  12400708     80.81      4352   2277656  26601924    173.35   1618356  12530040      1152
02:42:02 AM    181772   1068668  12248132     79.82      2540   2422580  26469824    172.49   1619400  12533552      1380
02:44:01 AM    186848   1014660  12302680     80.17      2356   2361476  26488488    172.61   1627648  12516768       416

如果 %idle 值比较小(接近 0%),通常意味着 CPU 负载较高,几乎没有空闲时间,可能的原因包括:

基础知识

sar -u%idle 列比较小代表什么?

在 Linux 系统中,sar -u 命令用于查看 CPU 使用情况,其中 %idle 列表示 CPU 处于空闲状态的时间百分比。 如果 %idle 值比较小(接近 0%),通常意味着 CPU 负载较高,几乎没有空闲时间,可能的原因包括:

  1. CPU 计算密集型任务:系统正在运行大量计算密集型进程,比如数据库查询、大规模计算、视频处理等。

  2. I/O 负载导致 CPU 等待:如果 %iowait(I/O 等待时间)也很高,说明 CPU 在等待磁盘或网络 I/O 完成,可能是磁盘 IOPS 不足或存储设备性能瓶颈。

  3. 高系统开销(%system 高):如果 %system 值较高(系统占用 CPU 多),可能是内核态进程占用了大量 CPU 资源,比如频繁的中断、网络流量过高等。

  4. 大量进程竞争 CPU 资源:如果 load averageuptime 命令或 sar -q)也很高,说明系统中的进程数量过多,导致 CPU 资源紧张。

  5. 应用程序或内核异常:某些进程可能发生死循环,导致 CPU 持续高负载。

sar -qrunq-sz 明显增长代表什么?

sar -q 命令用于查看系统的运行队列(Run Queue)和负载情况,其中:

  • **runq-sz**(运行队列大小):表示等待 CPU 运行的进程数量。

  • **plist-sz**(进程列表大小):表示系统中当前的进程总数。

  • **ldavg-1****ldavg-5****ldavg-15**:表示系统的 1 分钟、5 分钟和 15 分钟的平均负载。

1. 指标含义回顾

  • pgpgin/s 与 pgpgout/s 表示每秒从磁盘读取和写入的页面数。数据较高说明页面 I/O 活动激增(例如大量数据交换、缓存填充或换入换出)。

  • fault/s 表示每秒产生的页面错误数(缺页异常)。数值较高往往与大量内存分配、应用频繁访问数据或缓存失效有关。

  • majflt/s 表示每秒发生的主缺页(需要从磁盘加载页面)的次数。虽然数值整体较低,但偶尔的上升可能反映某些操作需要从磁盘取数据。

  • pgfree/s 表示每秒释放的页面数。释放页面增加意味着系统正大规模回收页面。

  • pgscank/s 是内核后台扫描(查找可回收页面)的速率。较高的值说明内核正在积极扫描内存以寻找可以回收的页面。

  • pgscand/s 表示实际回收的页面数。数值上升表明内核回收活动更为激烈。

  • pgsteal/s 指“窃取”页面(从缓存或可回收页面中快速分配)的速率。数据高说明系统迫切需要回收页面来满足内存分配请求。

  • %vmeff 是页面回收效率的指标(通常反映在扫描过程中实际成功回收的比例或效率)。这里大部分时间值在 190 左右,说明在激烈的扫描下,内核“窃取”和释放页面的动作效率较高,但也反映出内存回收任务繁重。

2. 数据分析

A. 时间段内的变化

  • 01:22 – 01:42 AM 开始时各项指标处于中等水平(pgpgin 数值在 5000 左右,pgfree ~28k),而 pgscank、pgscand、pgsteal 有时为 0,有时突然出现小幅波动(例如 01:28 至 01:40 有轻微扫描与窃取行为,效率约 196~200)。这表明在这一段时间内内核偶有回收动作,但总体压力不算极端。

  • 01:44 – 02:00 AM 部分时段(如 01:44、01:52)pgscank 和 pgsteal 开始有较大幅度上升,pgfree 稳定在 28~31k,说明系统开始主动扫描回收页面。但总体 I/O 水平仍保持在较低水平(pgpgin 仍在 5000 左右)。

  • 02:02 AM 开始至 04:06 AM 出现明显的“跳变”:

    • pgpgin/s 突然飙升至 18-26 万,pgfree/s 增加到 70~84k,pgscank/s 大幅上升(从几十或几百到数万甚至超过 50k),同时 pgsteal/s 达到 9-12 万的水平。

    • fault/s 也相对维持在 25k~30k,显示页面错误频发。

    • %vmeff 保持在 190 左右。 这一阶段表明内核正处于极度活跃的页面回收状态,说明系统内存压力剧增,内核必须大规模扫描、释放和“窃取”页面来满足内存分配需求。

  • 04:06 – 07:00 AM 整体指标仍保持在高水平(pgpgin 持续在 220k~250k左右,pgfree/s 在 80k+,pgscank/s 和 pgsteal/s 依然维持在较高数值),说明内存回收负载依旧很重。

  • 07:04 AM 以后 数据突然出现大幅下降(例如 07:06 AM pgpgin 降到 5千左右,pgfree/s 则降到 28k~29k,此后指标恢复到较低水平)。这一变化可能说明内存压力缓解,或系统负载变化导致回收活动降低。

B. 整体判断

  • 内存压力极大 从 02:02 AM 到 07:00 AM,内核大量扫描并释放页面(pgscank、pgscand、pgsteal 高达数万甚至十万级),说明系统长期处于内存紧张状态。

  • 大量 I/O 操作 pgpgin/s、pgpgout/s 的大幅波动表明大量页面从磁盘读入/写出,可能与频繁换入/换出或缓存刷新有关。

  • 回收效率较高但代价昂贵 虽然 %vmeff 数值看上去较高(约 190), 说明扫描中能回收较多页面,但如此高频的回收活动本身会带来系统开销和 I/O 压力。

3. 原因分析

内存不足导致触发 kswapd, 从而导致缓存频繁回收, 回收过程中内存持续紧张,导致持续缓存回收

2025-3-8 号更新定位进展:

后续观察, 发现修改内核参数之后 , 凌晨2 点负载还是很高,

可以看到 2 点负载的确突然升高

sar -u -e "04:00:00"01:38:01 AM   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked
01:40:01 AM         1      6117     11.59      9.87     11.31         0
01:42:02 AM         0      6112     10.27     10.34     11.33         0
01:44:01 AM        14      6108      6.87      9.04     10.73         0
01:46:02 AM         2      6108      7.02      8.61     10.38         0
01:48:01 AM         3      6105     10.05      8.92     10.26         0
01:50:01 AM        34      6121      6.89      8.04      9.76         0
01:52:01 AM         1      6115      8.21      7.62      9.37         1
01:54:02 AM         2      6108      7.65      7.31      9.02         0
01:56:01 AM        20      6112      7.65      7.46      8.87         0
01:58:02 AM         2      6088      8.81      7.88      8.85         0
02:00:02 AM        19      6113     11.28      8.84      9.07         2
02:02:01 AM        30      6132     40.91     20.20     13.15         0
02:04:02 AM        14      6137     49.54     28.89     17.12         2
02:06:02 AM        79      6140     59.82     40.00     22.65         0
02:08:02 AM        54      6131     45.02     41.45     25.34         0
02:10:03 AM        50      6140     42.49     40.54     26.96         0
02:12:02 AM        36      6124     34.90     38.30     27.72         0
02:14:01 AM        46      6149     42.28     39.71     29.51         0
02:16:02 AM        25      6134     35.58     38.20     30.20         0
02:18:02 AM        54      6142     39.30     38.86     31.43         0

查看 osw 中 mpstat 信息

路径 /var/log/oswbb/archive/oswmpstat/

image

可以看到是 CPU 占用偏高, 但等待 IO 的 CPU 并没升高

image

查看 IOSTAT

image

发现 IO 也升高了 也就是说凌晨 2:00 之后, CPU 与 IO 消耗都明显升高了, 究竟是谁?

查看 pidstat

路径 /var/log/oswbb/archive/oswpidstat/ 发现 2:00 有一个进程比较异常
image

查看 3846364 进程是谁

[root@localhost oswpidstat]# grep -nw 3846364 /var/log/pg_log/*log
/var/log/pg_log/postgresql-4.log:1374:2025-03-06 23:00:01.676 UTC PostgreSQL JDBC Driver postgres 127.0.0.1(34462) is 2045746:DETAIL:  Process holding the lock: 3846364. Wait queue: 2045746, 1931080, 1687669.
/var/log/pg_log/postgresql-4.log:1379:2025-03-06 23:00:02.103 UTC PostgreSQL JDBC Driver postgres 127.0.0.1(40866) is 1931080:DETAIL:  Process holding the lock: 3846364. Wait queue: 2045746, 1931080, 1687669.
/var/log/pg_log/postgresql-4.log:1479:2025-03-06 23:00:02.499 UTC PostgreSQL JDBC Driver postgres 127.0.0.1(40370) is 1687669:DETAIL:  Process holding the lock: 3846364. Wait queue: 2045746, 1931080, 1687669, 2218197.
/var/log/pg_log/postgresql-4.log:1579:2025-03-06 23:00:03.385 UTC PostgreSQL JDBC Driver postgres 127.0.0.1(35890) is 2218197:DETAIL:  Process holding the lock: 3846364. Wait queue: 2045746, 1931080, 1687669, 2218197, 2397606.
/var/log/pg_log/postgresql-4.log:1679:2025-03-06 23:00:04.275 UTC PostgreSQL JDBC Driver postgres 127.0.0.1(54842) is 2397606:DETAIL:  Process holding the lock: 3846364. Wait queue: 2045746, 1931080, 1687669, 2218197, 2397606.
/var/log/pg_log/postgresql-4.log:1779:2025-03-06 23:00:10.596 UTC PostgreSQL JDBC Driver postgres 127.0.0.1(34462) is 2045746:DETAIL:  Process holding the lock: 3846364. Wait queue: 2045746, 1931080, 1687669, 2218197, 2397606.
/var/log/pg_log/postgresql-4.log:1784:2025-03-06 23:00:13.201 UTC PostgreSQL JDBC Driver postgres 127.0.0.1(54842) is 2397606:DETAIL:  Process holding the lock: 3846364. Wait queue: 2045746, 1931080, 1687669, 2218197, 2397606.
/var/log/pg_log/postgresql-4.log:1884:2025-03-06 23:30:57.820 UTC PostgreSQL JDBC Driver postgres 127.0.0.1(54842) is 2397606:DETAIL:  Process holding the lock: 3846364. Wait queue: 2045746, 1931080, 1687669, 2218197, 2397606.
/var/log/pg_log/postgresql-4.log:1984:2025-03-06 23:35:33.088 UTC PostgreSQL JDBC Driver postgres 127.0.0.1(40866) is 1931080:DETAIL:  Process holding the lock: 3846364. Wait queue: 2045746, 1931080, 1687669, 2218197, 2397606.
/var/log/pg_log/postgresql-4.log:2084:2025-03-06 23:38:38.571 UTC PostgreSQL JDBC Driver postgres 127.0.0.1(35890) is 2218197:DETAIL:  Process holding the lock: 3846364. Wait queue: 2045746, 1931080, 1687669, 2218197, 2397606.
/var/log/pg_log/postgresql-4.log:2184:2025-03-06 23:41:33.078 UTC PostgreSQL JDBC Driver postgres 127.0.0.1(40370) is 1687669:DETAIL:  Process holding the lock: 3846364. Wait queue: 2045746, 1931080, 1687669, 2218197, 2397606.
/var/log/pg_log/postgresql-4.log:2284:2025-03-06 23:45:01.879 UTC PostgreSQL JDBC Driver postgres 127.0.0.1(34462) is 2045746:DETAIL:  Process holding the lock: 3846364. Wait queue: 2045746, 1931080, 1687669, 2218197, 2397606.
/var/log/pg_log/postgresql-5.log:35:2025-03-07 01:13:42.217 UTC PostgreSQL JDBC Driver postgres 127.0.0.1(47832) is 3846364:LOG:  duration: 26016769.129 ms  execute <unnamed>: SELECT func_clean_tbl_xxx($1, $2)
/var/log/pg_log/postgresql-5.log:36:2025-03-07 01:13:42.217 UTC PostgreSQL JDBC Driver postgres 127.0.0.1(47832) is 3846364:DETAIL:  parameters: $1 = '20000000', $2 = '100000'
[root@localhost oswpidstat]# 该进程对应的是  is 库中 func_clean_tbl_xxx 函数

返回来查看 03.06 02:00 左右, 发现也有一个异常的进程, 如下

image

查看该进程信息

image

image

可以看到 两次都是 is 库中的 func_clean_tbl_xxx 这个导致的, 其详细信息如下

CREATE OR REPLACE FUNCTION public.func_clean_tbl_xxx(threshold integer, batch_size integer)RETURNS TABLE(upload_pic_urls text)LANGUAGE plpgsql
AS $function$
DECLARErecord_cnt INT;sql_cmd varchar;deleted_record RECORD;
BEGIN-- 获取当前记录总数EXECUTE 'SELECT COUNT(*) FROM tbl_xxx' INTO record_cnt;-- 如果表中记录数小于等于阈值,则无需执行任何操作IF record_cnt <= threshold THENRETURN; -- 提前退出函数END IF;-- 确保批量大小不超过记录总数IF batch_size > record_cnt THENbatch_size := record_cnt;END IF;WHILE record_cnt > threshold LOOP-- 计算本次循环实际要删除的记录数IF (record_cnt - batch_size) < threshold THENbatch_size := (record_cnt - threshold);END IF;-- 构建并执行删除命令sql_cmd = FORMAT('delete from tbl_xxx where id in (select id from tbl_xxx order by alarm_time limit %1$s) returning upload_pic_urls', batch_size);FOR deleted_record IN EXECUTE sql_cmd LOOP-- 如果upload_pic_urls非空且不为空字符串,则返回该值IF deleted_record.upload_pic_urls IS NOT NULL AND deleted_record.upload_pic_urls <> '' THENupload_pic_urls := deleted_record.upload_pic_urls;RETURN NEXT;END IF;END LOOP;-- 更新剩余记录数EXECUTE 'SELECT COUNT(*) FROM tbl_xxx' INTO record_cnt;END LOOP;RETURN; 
END;
$function$

对于大表清理数据, 尽量不要使用 delete, 建议先分表,然后通过 drop 子表的方式清理历史数据

优化建议

# 目前策略确认
0. 每天凌晨 2:00 开始执行 func_clean_tbl_xxx 
1. drop 180 天之前的子表 (当前是否已经在业务层实现了?)
2. 达到 2000w 条再开始 delete 清理, 每次 delete 10w 条, 并返回其中 upload_pic_urls 非空的 url# 建议改为 (待与业务开发确认)
1. drop 180 天之前的子表
2. 达到 300w 条计划 drop 子表, 将待 drop 子表中的 upload_pic_urls 插入到单独的表中 tbl_xxx, 然后 drop 子表
3. 业务层, 则定期在 4:30 开始查询 tbl_xxx 表, 只要其中 not null and 不等于'' 的记录, 查询完成之后,  则 truncate 该表# 反思
如果提前定期巡检下, 应该可以提前发现该问题(巡检,监控都重要性)
http://www.xdnf.cn/news/724.html

相关文章:

  • ASP.NET Core 最小 API:极简开发,高效构建(上)
  • DEA-Net:基于细节增强卷积和内容引导注意力的单图像去雾
  • 51c大模型~合集119
  • SpringBoot入门实战(第一篇:环境准备和项目初始化)
  • C语言求执行次数
  • 【算法笔记】如何优雅的进行字符串操作
  • 【英语语法】词法---形容词
  • 关于编译树莓派内核系统的总结
  • STM32基础教程——串口收发
  • 基于尚硅谷FreeRTOS视频笔记——11—RTOS获取源码及源码简介
  • 开发环境解决浏览器层面跨域问题
  • [Scade One] Swan 图形化建模技术的形式化文法
  • 如何快速的搭建可用的付费网盘站点,实现盈利:新版网盘系统源码,全新构架,局部新颖,功能齐全,可自用可运营,可正常用于生产,2025年搭建付费网盘系统首选!
  • python绘制正态分布和t分布图形
  • Spring 事务管理核心机制与传播行为应用
  • Keil MDK 编译问题:function “HAL_IncTick“ declared implicitly
  • 牛客java练习题
  • OpenCV 图像调整指南
  • CSS 预处理器:Sass 升级版本 浅学
  • Edge Impulse 训练openMV分类模型(字母+数字)
  • AnimateCC基础教学:制作一个打地鼠简化版
  • 第37讲|AI+农业气象建模:预测极端天气对农业的影响
  • Linux 动、静态库的实现
  • 【代码解读】开源模型 minimind之pretrain
  • Java29:Spring MVC
  • 认识MCP Function Calling AI Agent
  • Redis——内存策略
  • 对于网络资源二级缓存的简单学习
  • 第十章 继承与派生
  • C++ 构造函数调用顺序以及什么是虚析构函数?为什么需要它?