【注意】最后更新于 November 20, 2022,文中内容可能已过时,请谨慎使用。
如何学习
在本文中,我将试着去回答liunx 内核参数:
Q1 (Why): 为什么需要协程?
我们会一起回顾协程出现的历史背景,当时要解决什么问题;同时,现在是什么场景,需要使用协程来进行处理?为什么进程或者线程不能够很好地满足当下的使用场景?
Q2 (What): 到底什么是协程?
我们一直在谈论协程。由于协程中包含有「程」这个字眼,因此经常被拿来与进程线程进行对比,称协程为「用户态线程」;但又有人从协程实现的角度,说「协程是一种泛化的函数」。这就把我们给绕晕了。我们不禁要问,到底什么是协程?在本次分享中,我会试着进行回答。
Q3 (How): 怎么实现协程 (库)?
在回答了协程是什么之后,第三个问题就紧随而来,我们可以自己去实现一个简单的协程或者协程库吗?如果可以实现,那我们应该怎么实现呢?
Q4 (Usage): 使用协程时需要注意什么?
通过实际编码实现一个简单的协程库后,我们再来看 libco 的实现,就会清晰明了。我们会在第四部分介绍使用协程时需要注意的一些问题。
这就是我本次分享想要达成的目标 —— 回答这四个问题。
1
2
3
4
5
6
7
8
9
10
11
|
一、这个技术出现的背景、初衷和要达到什么样的目标或是要解决什么样的问题
二、这个技术的优势和劣势分别是什么
三、这个技术适用的场景。任何技术都有其适用的场景,离开了这个场景
四、技术的组成部分和关键点。
五、技术的底层原理和关键实现
六、已有的实现和它之间的对比
|
故障1
现象描述:发现内存被占用,但是查找不到相关进程,
1. free ps top 这些工具统计差距这么大,多出内存去哪里?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
[root@localhost ~]# free -g
total used free shared buff/cache available
Mem: 1007 16 990 0 0 987
Swap: 62 0 62
ps aux | awk '{mem += $6} END {print mem/1024/1024}'
2.13824
top free 命令完整来源
cat /proc/meminfo
while true; do cat /proc/meminfo | grep MemFree; sleep 10; done
|
画外音:
- ps top 这个工具使用场景是什么?用户态的内存 没有专门统计另一项缓存: Slab。
- /proc/meminfo是了解Linux系统内存使用状况的主要接口,我们最常用的”free”、”vmstat”等命令就是通过它获取数据的 ,/proc/meminfo所包含的信息比”free”等命令要丰富得多
2 陈咬金三板斧:不用什么原有 执行 drop_caches 之后,slab内存还是没有下降,无效操作?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
## 没有释放
echo 3 > /proc/sys/vm/drop_caches
## 其中SUnreclaim:,随着测试时间加长SUnreclaim一直在增加,证明存在内存泄露可能.
On linux Slab is subdivided into two: SReclaimable and SUnreclaim .
[root@localhost ~]# cat /proc/meminfo | grep "SUnreclaim"
SUnreclaim: 11777088 kB
[root@localhost ~]# cat /proc/meminfo | grep "SUnreclaim"
SUnreclaim: 11778504 kB
[root@localhost ~]#
### slab
cat /proc/slabinfo | awk '{if($3*$4/1024/1024 > 100){print $1,$3*$4/1024/1024} }' |sort -nr
task_struct 8784.26
taskstats 390.255
signal_cache 1379.58
kmalloc-192 119.878
kmalloc-128 146.234
cred_jar 218.97
beegfs_inode_cache 226.975
# 尝试在/sys/kernel/slab/*/中提供了alloc_calls和free_calls。 这个中断
cat: /sys/kernel/slab/kmalloc-128/alloc_calls: Function not implemented
cat /sys/kernel/slab/task_struct/alloc_calls
cat: /sys/kernel/slab/task_struct/alloc_calls: Function not implemented
CONFIG_SLUB_DEBUG_ON 不知道如何开启
slabinfo -S
slabtop
在内核中打开slub_debug,相关的工具有slabinfo。
slabinfo的数据来源是/sys/kernel/slab。
slabtop -s l
OBJS ACTIVE USE OBJ SIZE SLABS OBJ/SLAB CACHE SIZE NAME
1246208 1246174 99% 7.56K 311552 4 9969664K task_struct
1246362 1246362 100% 1.19K 47937 26 1533984K signal_cache
1254336 1254336 100% 0.12K 39198 32 156792K kmalloc-128
1252356 1252356 100% 0.19K 29818 42 238544K cred_jar
经过确认 cat /boot/config-4.18.0-305.3.1.el8_4.x86_64
cat /boot/config-4.18.0-305.3.1.el8_4.x86_64 |grep CONFIG_SLUB_DEBUG_ON
# CONFIG_SLUB_DEBUG_ON is not set
开启
|
画外音:
- cat /sys/kernel/slab/task_struct/alloc_calls 使用条件是什么?需要重新编译源码 开启CONFIG_SLUB_DEBUG_ON 这里没做不到 中断了
3 对比业务发现tcp链接内存不增长,会马上释放,然后短链接改为长链接 内存也不增长。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
--正常情况
Overhead Shared Object Symbol
34.41% [kernel] [k] clear_page_erms ◆
21.52% libc-2.28.so [.] __memset_avx2_erms ▒
1.13% [kernel] [k] _raw_spin_lock ▒
1.11% [kernel] [k] _raw_spin_lock_irqsave ▒
1.03% [kernel] [k] unpin_user_pages_dirty_lock ▒
0.76% [kernel] [k] get_page_from_freelist ▒
0.61% ld-2.28.so [.] do_lookup_x ▒
0.60% [kernel] [k] native_irq_return_iret ▒
0.53% [kernel] [k] __list_del_entry_valid ▒
0.52% [kernel] [k] update_sd_lb_stats.constprop.118 ▒
0.47% [kernel] [k] update_rq_clock
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
内存增长的perf top
Overhead Shared Object Symbol
11.98% [kernel] [k] copy_user_enhanced_fast_string
10.42% [kernel] [k] ext4_mpage_readpages
7.35% [kernel] [k] native_queued_spin_lock_slowpath
5.89% libc-2.28.so [.] __memcmp_avx2_movbe
5.67% libc-2.28.so [.] __memmove_avx_unaligned_erms
3.61% [kernel] [k] _raw_spin_lock_irqsave
2.15% [kernel] [k] __list_del_entry_valid
1.71% libpthread-2.28.so [.] pthread_spin_lock
1.30% [kernel] [k] ext4_es_lookup_extent
1.09% [kernel] [k] mutex_lock
0.99% [kernel] [k] mlx5_eq_comp_int
0.96% libmpi.so.12.1.8 [.] 0x00000000001c47d5
0.92% [kernel] [k] get_page_from_freelist
0.91% [kernel] [k] free_pcppages_bulk
0.79% [kernel] [k] osq_lock
|
perf record -F 99 -g -a – sleep 20
perf report –stdio
perf record -F 99 -g -e “kmem:*” – sleep 20
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
|
- 正常情况
# Children Self Command Shared Object Symbol >
# ........ ........ ............... ......................... .....................................................................................................................................................................................................>
#
32.52% 0.00% beegfs-ctl/Main [unknown] [k] 0000000000000000
|
---0
|
--30.94%--ibv_query_device
31.47% 6.76% beegfs-ctl/Main libc-2.28.so [.] __memset_avx2_erms
|
|--24.70%--__memset_avx2_erms
| |
| --24.31%--page_fault
| |
| --24.18%--do_page_fault
| |
| --24.17%--__do_page_fault
| |
| --24.14%--handle_mm_fault
| |
| --24.10%--__handle_mm_fault
| |
| |--22.95%--do_huge_pmd_anonymous_page
| | |
| | --22.22%--clear_huge_page
| | |
| | --21.73%--clear_subpage
| | |
| | --21.37%--clear_page_erms
| |
| --1.09%--do_anonymous_page
|
--6.75%--0
|
--6.62%--ibv_query_device
31.36% 0.05% beegfs-ctl/Main [kernel.kallsyms] [k] page_fault
|
--31.31%--page_fault
|
--24.81%--do_page_fault
__do_page_fault
|
--24.75%--handle_mm_fault
|
--24.70%--__handle_mm_fault
|
|--23.24%--do_huge_pmd_anonymous_page
| |
| --22.49%--clear_huge_page
| |
| --22.00%--clear_subpage
| |
| --21.64%--clear_page_erms
|
--1.27%--do_anonymous_page
|
--0.52%--mem_cgroup_charge
30.94% 0.00% beegfs-ctl/Main libibverbs.so.1.14.43.0 [.] ibv_query_device
|
---ibv_query_device
24.82% 0.00% beegfs-ctl/Main [kernel.kallsyms] [k] do_page_fault
|
---do_page_fault
|
--24.81%--__do_page_fault
|
--24.75%--handle_mm_fault
|
--24.70%--__handle_mm_fault
|
|--23.24%--do_huge_pmd_anonymous_page
| |
| --22.49%--clear_huge_page
| |
| --22.00%--clear_subpage
| |
| --21.64%--clear_page_erms
|
--1.27%--do_anonymous_page
|
--0.52%--mem_cgroup_charge
24.81% 0.00% beegfs-ctl/Main [kernel.kallsyms] [k] __do_page_fault
|
--24.81%--__do_page_fault
|
--24.75%--handle_mm_fault
|
--24.70%--__handle_mm_fault
|
|--23.24%--do_huge_pmd_anonymous_page
| |
| --22.49%--clear_huge_page
| |
| --22.00%--clear_subpage
| |
| --21.64%--clear_page_erms
|
--1.27%--do_anonymous_page
|
--0.52%--mem_cgroup_charge
24.75% 0.03% beegfs-ctl/Main [kernel.kallsyms] [k] handle_mm_fault
|
--24.72%--handle_mm_fault
|
--24.70%--__handle_mm_fault
|
|--23.24%--do_huge_pmd_anonymous_page
| |
| --22.49%--clear_huge_page
| |
| --22.00%--clear_subpage
| |
| --21.64%--clear_page_erms
|
--1.27%--do_anonymous_page
|
--0.52%--mem_cgroup_charge
24.70% 0.07% beegfs-ctl/Main [kernel.kallsyms] [k] __handle_mm_fault
|
--24.63%--__handle_mm_fault
|
|--23.24%--do_huge_pmd_anonymous_page
| |
| --22.49%--clear_huge_page
| |
| --22.00%--clear_subpage
| |
| --21.64%--clear_page_erms
|
--1.27%--do_anonymous_page
|
24.47% 0.00% ConnAccept [unknown] [.] 0000000000000000
|
---0
|
--24.23%--ibv_query_device
|
|--1.14%--0x7f2f0cfc8830
| __memset_avx2_erms
| |
| --1.11%--page_fault
| |
| --0.94%--do_page_fault
| __do_page_fault
| handle_mm_fault
| __handle_mm_fault
| |
| --0.92%--do_huge_pmd_anonymous_page
| |
| --0.91%--clear_huge_page
| clear_subpage
| |
| --0.87%--clear_page_erms
|
|--1.02%--0x7f2f0cfc8530
| __memset_avx2_erms
| |
| --0.96%--page_fault
| |
| --0.79%--do_page_fault
| __do_page_fault
| handle_mm_fault
| __handle_mm_fault
| |
| --0.73%--do_huge_pmd_anonymous_page
| clear_huge_page
| clear_subpage
| |
| --0.71%--clear_page_erms
|
|--1.00%--0x7f2f0ce7e6f0
| __memset_avx2_erms
| |
| --0.96%--page_fault
| |
| --0.78%--do_page_fault
| __do_page_fault
| handle_mm_fault
| __handle_mm_fault
| |
| --0.76%--do_huge_pmd_anonymous_page
| |
| --0.73%--clear_huge_page
| |
| --0.72%--clear_subpage
| |
| --0.70%--clear_page_erms
|
|--0.98%--0x7f2f0c2a0b80
| __memset_avx2_erms
| page_fault
| |
| --0.67%--do_page_fault
| __do_page_fault
| |
| --0.63%--handle_mm_fault
| __handle_mm_fault
| |
| --0.62%--do_huge_pmd_anonymous_page
| |
| --0.60%--clear_huge_page
24.42% 5.91% ConnAccept libc-2.28.so [.] __memset_avx2_erms
|
|--18.52%--__memset_avx2_erms
| |
| --18.11%--page_fault
| |
| --17.99%--do_page_fault
| __do_page_fault
| |
| --17.91%--handle_mm_fault
| |
| --17.87%--__handle_mm_fault
| |
| |--16.61%--do_huge_pmd_anonymous_page
| | |
| | --16.23%--clear_huge_page
| | |
| | --16.05%--clear_subpage
| | |
| | --15.67%--clear_page_erms
| |
| --1.21%--do_anonymous_page
|
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
+ 32.52% 0.00% beegfs-ctl/Main [unknown] [k] 0000000000000000 ◆
+ 31.47% 6.76% beegfs-ctl/Main libc-2.28.so [.] __memset_avx2_erms ▒
+ 31.36% 0.05% beegfs-ctl/Main [kernel.kallsyms] [k] page_fault ▒
+ 30.94% 0.00% beegfs-ctl/Main libibverbs.so.1.14.43.0 [.] ibv_query_device ▒
+ 24.82% 0.00% beegfs-ctl/Main [kernel.kallsyms] [k] do_page_fault ▒
+ 24.81% 0.00% beegfs-ctl/Main [kernel.kallsyms] [k] __do_page_fault ▒
+ 24.75% 0.03% beegfs-ctl/Main [kernel.kallsyms] [k] handle_mm_fault ▒
+ 24.70% 0.07% beegfs-ctl/Main [kernel.kallsyms] [k] __handle_mm_fault ▒
+ 24.47% 0.00% ConnAccept [unknown] [.] 0000000000000000 ▒
+ 24.42% 5.91% ConnAccept libc-2.28.so [.] __memset_avx2_erms ▒
+ 24.23% 0.00% ConnAccept libibverbs.so.1.14.43.0 [.] ibv_query_device ▒
+ 23.71% 0.01% ConnAccept [kernel.kallsyms] [k] page_fault ▒
+ 23.24% 0.02% beegfs-ctl/Main [kernel.kallsyms] [k] do_huge_pmd_anonymous_page ▒
+ 22.49% 0.09% beegfs-ctl/Main [kernel.kallsyms] [k] clear_huge_page ▒
+ 22.00% 0.28% beegfs-ctl/Main [kernel.kallsyms] [k] clear_subpage ▒
+ 21.84% 21.51% beegfs-ctl/Main [kernel.kallsyms] [k] clear_page_erms ▒
+ 18.01% 0.00% ConnAccept [kernel.kallsyms] [k] do_page_fault ▒
+ 18.01% 0.04% ConnAccept [kernel.kallsyms] [k] __do_page_fault ▒
+ 17.94% 0.03% ConnAccept [kernel.kallsyms] [k] handle_mm_fault ▒
+ 17.88% 0.04% ConnAccept [kernel.kallsyms] [k] __handle_mm_fault ▒
+ 16.61% 0.01% ConnAccept [kernel.kallsyms] [k] do_huge_pmd_anonymous_page ▒
+ 16.23% 0.03% ConnAccept [kernel.kallsyms] [k] clear_huge_page ▒
+ 16.08% 0.30% ConnAccept [kernel.kallsyms] [k] clear_subpage ▒
+ 15.89% 15.70% ConnAccept [kernel.kallsyms] [k] clear_page_erms ▒
+ 11.13% 0.28% swapper [kernel.kallsyms] [k] do_idle
|
perf report –stdio
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
|
# Children Self Command Shared Object Symbol >
# ........ ........ ............... ......................... .....................................................................................................................................................................................................>
#
18.48% 0.00% beegfs-ctl/Main [kernel.kallsyms] [k] entry_SYSCALL_64_after_hwframe
|
---entry_SYSCALL_64_after_hwframe
do_syscall_64
|
|--14.57%--ksys_read
| vfs_read
| |
| --14.54%--new_sync_read
| |
| --14.53%--FhgfsOps_buffered_read_iter
| read_common
| |
| --14.53%--FhgfsOpsHelper_readCached
| |
| --14.53%--__FhgfsOpsHelper_readCacheFlushed
| FhgfsOpsRemoting_readfileVec
| |
| --14.51%--FhgfsOpsCommKit_readfileV2bCommunicate
| |
| --14.51%--FhgfsOpsCommkit_communicate
| |
| |--8.52%--__commkit_readfile_recvdata
| | |
| | --8.50%--__commkit_readfile_receive
| | |
| | --8.39%--__IBVSocket_recvContinueIncomplete
| | |
| | |--6.63%--_copy_to_iter
| | | |
| | | --6.53%--copyout
| | | |
| | | --6.47%--copy_user_enhanced_fast_string
| | |
| | --1.15%--__IBVSocket_postRecv
| | |
| | --1.03%--mlx5_ib_post_recv
| | |
| | --0.91%--_raw_spin_lock_irqsave
| |
| |--2.83%--NodeConnPool_acquireStreamSocketEx
| | |
| | --1.89%--__mutex_lock.isra.6
| | |
| | --1.35%--osq_lock
| |
| |--1.74%--SocketTk_poll
| | |
| | --1.17%--IBVSocket_poll
| | |
| | --0.93%--__IBVSocket_receiveCheck
| | |
| | --0.90%--__IBVSocket_recvWC
| | |
| | --0.86%--__IBVSocket_waitForRecvCompletionEvent
| | |
| | --0.82%--mlx5_ib_poll_cq
| |
| --0.83%--__commkit_prepare_io
| |
| --0.66%--mutex_lock
|
--3.73%--ksys_write
vfs_write
|
--3.73%--new_sync_write
FhgfsOps_buffered_write_iter
write_common
FhgfsOpsHelper_writeCached
|
--3.73%--FhgfsOpsHelper_writefileEx
FhgfsOpsRemoting_writefileVec
|
--3.72%--FhgfsOpsCommKit_writefileV2bCommunicate
|
--3.71%--FhgfsOpsCommkit_communicate
|
|--2.70%--__commkit_writefile_sendData
| IBVSocket_send
| |
| --2.28%--IBVBuffer_fill
| |
| --1.99%--_copy_from_iter
| |
| --1.96%--copyin
| |
| --1.95%--copy_user_enhanced_fast_string
|
--0.74%--NodeConnPool_acquireStreamSocketEx
18.48% 0.00% beegfs-ctl/Main [kernel.kallsyms] [k] do_syscall_64
|
--18.48%--do_syscall_64
|
|--14.57%--ksys_read
| vfs_read
| |
| --14.54%--new_sync_read
| |
| --14.53%--FhgfsOps_buffered_read_iter
| read_common
| |
| --14.53%--FhgfsOpsHelper_readCached
| |
| --14.53%--__FhgfsOpsHelper_readCacheFlushed
| FhgfsOpsRemoting_readfileVec
| |
| --14.51%--FhgfsOpsCommKit_readfileV2bCommunicate
| |
| --14.51%--FhgfsOpsCommkit_communicate
| |
| |--8.52%--__commkit_readfile_recvdata
| | |
| | --8.50%--__commkit_readfile_receive
| | |
| | --8.39%--__IBVSocket_recvContinueIncomplete
| | |
| | |--6.63%--_copy_to_iter
| | | |
| | | --6.53%--copyout
| | | |
| | | --6.47%--copy_user_enhanced_fast_string
| | |
| | --1.15%--__IBVSocket_postRecv
| | |
| | --1.03%--mlx5_ib_post_recv
| | |
| | --0.91%--_raw_spin_lock_irqsave
| |
| |--2.83%--NodeConnPool_acquireStreamSocketEx
| | |
| | --1.89%--__mutex_lock.isra.6
| | |
| | --1.35%--osq_lock
| |
| |--1.74%--SocketTk_poll
| | |
| | --1.17%--IBVSocket_poll
| | |
| | --0.93%--__IBVSocket_receiveCheck
| | |
| | --0.90%--__IBVSocket_recvWC
| | |
| | --0.86%--__IBVSocket_waitForRecvCompletionEvent
| | |
| | --0.82%--mlx5_ib_poll_cq
| |
| --0.83%--__commkit_prepare_io
| |
| --0.66%--mutex_lock
|
--3.73%--ksys_write
vfs_write
|
--3.73%--new_sync_write
FhgfsOps_buffered_write_iter
write_common
FhgfsOpsHelper_writeCached
|
--3.73%--FhgfsOpsHelper_writefileEx
FhgfsOpsRemoting_writefileVec
|
--3.72%--FhgfsOpsCommKit_writefileV2bCommunicate
|
--3.71%--FhgfsOpsCommkit_communicate
|
|--2.70%--__commkit_writefile_sendData
| IBVSocket_send
| |
| --2.28%--IBVBuffer_fill
| |
| --1.99%--_copy_from_iter
| |
| --1.96%--copyin
| |
| --1.95%--copy_user_enhanced_fast_string
|
--0.74%--NodeConnPool_acquireStreamSocketEx
18.22% 0.08% beegfs-ctl/Main [kernel.kallsyms] [k] FhgfsOpsCommkit_communicate
|
--18.15%--FhgfsOpsCommkit_communicate
|
|--8.52%--__commkit_readfile_recvdata
| |
| --8.50%--__commkit_readfile_receive
| |
| --8.39%--__IBVSocket_recvContinueIncomplete
| |
| |--6.63%--_copy_to_iter
| | |
| | --6.53%--copyout
| | |
| | --6.47%--copy_user_enhanced_fast_string
| |
| --1.15%--__IBVSocket_postRecv
| |
| --1.03%--mlx5_ib_post_recv
| |
| --0.91%--_raw_spin_lock_irqsave
|
|--3.56%--NodeConnPool_acquireStreamSocketEx
| |
| |--2.38%--__mutex_lock.isra.6
| | |
| | |--1.70%--osq_lock
| | |
| | --0.52%--mutex_spin_on_owner
| |
| --0.52%--schedule
|
|--2.70%--__commkit_writefile_sendData
| IBVSocket_send
| |
| --2.28%--IBVBuffer_fill
| |
| --1.99%--_copy_from_iter
| |
| --1.96%--copyin
| |
| --1.95%--copy_user_enhanced_fast_string
|
|--1.86%--SocketTk_poll
| |
| --1.22%--IBVSocket_poll
| |
| --0.94%--__IBVSocket_receiveCheck
| |
| --0.91%--__IBVSocket_recvWC
| |
| --0.87%--__IBVSocket_waitForRecvCompletionEvent
| |
| --0.84%--mlx5_ib_poll_cq
|
|--0.83%--__commkit_prepare_io
| |
| --0.67%--mutex_lock
|
--0.52%--__commkit_cleanup_generic
|
--0.51%--NodeConnPool_releaseStreamSocket
16.54% 0.25% swapper [kernel.kallsyms] [k] do_idle
|
|
画外音
ofed_info -s
MLNX_OFED_LINUX-5.8-1.0.1.1:
ofed_info -s
MLNX_OFED_LINUX-5.6-1.0.3.3:
https://docs.nvidia.com/networking/display/MLNXOFEDv581011/Introduction
启动
beegfs客户端无法启动,提示管理节点链接不上
ip a
ibstata
不显示ip 网卡
/etc/init.d/opensmd restart 失败
1164 lsmod |grep rdma
1178 rmmod beegfs
1180 lsmod |grep beegfs
lsmod |grep beegfs
lsmod - Show the status of modules in the Linux Kernel
相关文章
1
|
$ git clone https://github.com/torvalds/linux.git
|
kmem_cache_create(“task_struct”
kmem_cache_alloc_node
[1] bpftrace使用sizeof()查看task_struct的大小
[2]BeeGFS源码分析2-客户端概要分析
[3] Linux内存管理slub分配器
https://blog.csdn.net/weiqifa0/article/details/108591091