亚洲 国产精品 日韩-亚洲 激情-亚洲 欧美 91-亚洲 欧美 成人日韩-青青青草视频在线观看-青青青草影院

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > 抓住Linux黃金60秒

抓住Linux黃金60秒

來源:千鋒教育
發布人:syq
時間: 2022-09-07 10:05:04 1662516304

  如果你的Linux服務器突然負載暴增,告警短信快發爆你的手機,如何在最短時間內找出Linux性能問題所在?來看Netflix性能工程團隊的這篇博文,看它們通過十條命令在一分鐘內對機器性能問題進行診斷。

抓住Linux黃金60秒

  概述

  通過執行以下命令,可以在1分鐘內對系統資源使用情況有個大致的了解。

  •   uptime
  •   dmesg | tail
  •   vmstat 1
  •   mpstat -P ALL 1
  •   pidstat 1
  •   iostat -xz 1
  •   free -m
  •   sar -n DEV 1
  •   sar -n TCP,ETCP 1
  •   top

  其中一些命令需要安裝sysstat包,有一些由procps包提供。這些命令的輸出,有助于快速定位性能瓶頸,檢查出所有資源(CPU、內存、磁盤IO等)的利用率(utilization)、飽和度(saturation)和錯誤(error)度量,也就是所謂的USE方法。

  下面我們來逐一介紹下這些命令,有關這些命令更多的參數和說明,請參照命令的手冊。

  uptime

42

  這個命令可以快速查看機器的負載情況。在Linux系統中,這些數據表示等待CPU資源的進程和阻塞在不可中斷IO進程(進程狀態為D)的數量。這些數據可以讓我們對系統資源使用有一個宏觀的了解。

  命令的輸出分別表示1分鐘、5分鐘、15分鐘的平均負載情況。通過這三個數據,可以了解服務器負載是在趨于緊張還是區域緩解。如果1分鐘平均負載很高,而15分鐘平均負載很低,說明服務器正在命令高負載情況,需要進一步排查CPU資源都消耗在了哪里。反之,如果15分鐘平均負載很高,1分鐘平均負載較低,則有可能是CPU資源緊張時刻已經過去。

  上面例子中的輸出,可以看見最近1分鐘的平均負載非常高,且遠高于最近15分鐘負載,因此我們需要繼續排查當前系統中有什么進程消耗了大量的資源??梢酝ㄟ^下文將會介紹的vmstat、mpstat等命令進一步排查。

  dmesg丨tail

$ dmesg | tail

[1880957.563150] perl invoked oom-killer: gfp_mask=0x280da, order=0, oom_score_adj=0

[...]

[1880957.563400] Out of memory: Kill process 18694 (perl) score 246 or sacrifice child

[1880957.563408] Killed process 18694 (perl) total-vm:1972392kB, anon-rss:1953348kB, file-rss:0kB

[2320864.954447] TCP: Possible SYN flooding on port 7001. Dropping request.  Check SNMP counters.

  該命令會輸出系統日志的最后10行。示例中的輸出,可以看見一次內核的oom kill和一次TCP丟包。這些日志可以幫助排查性能問題。千萬不要忘了這一步。

  vmstat 1

$ vmstat 1

procs ---------memory---------- ---swap-- -----io---- -system-- ------cpu-----

 r  b swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st

34  0    0 200889792  73708 591828    0    0     0     5    6   10 96  1  3  0  0

32  0    0 200889920  73708 591860    0    0     0   592 13284 4282 98  1  1  0  0

32  0    0 200890112  73708 591860    0    0     0     0 9501 2154 99  1  0  0  0

32  0    0 200889568  73712 591856    0    0     0    48 11900 2459 99  0  0  0  0

32  0    0 200890208  73712 591860    0    0     0     0 15898 4840 98  1  1  0  0

  vmstat(8) 命令,每行會輸出一些系統核心指標,這些指標可以讓我們更詳細的了解系統狀態。后面跟的參數1,表示每秒輸出一次統計信息,表頭提示了每一列的含義,這幾介紹一些和性能調優相關的列:

  r:等待在CPU資源的進程數。這個數據比平均負載更加能夠體現CPU負載情況,數據中不包含等待IO的進程。如果這個數值大于機器CPU核數,那么機器的CPU資源已經飽和。

  free:系統可用內存數(以千字節為單位),如果剩余內存不足,也會導致系統性能問題。下文介紹到的free命令,可以更詳細的了解系統內存的使用情況。

  si, so:交換區寫入和讀取的數量。如果這個數據不為0,說明系統已經在使用交換區(swap),機器物理內存已經不足。

  us, sy, id, wa, st:這些都代表了CPU時間的消耗,它們分別表示用戶時間(user)、系統(內核)時間(sys)、空閑時間(idle)、IO等待時間(wait)和被偷走的時間(stolen,一般被其他虛擬機消耗)。

  上述這些CPU時間,可以讓我們很快了解CPU是否出于繁忙狀態。一般情況下,如果用戶時間和系統時間相加非常大,CPU出于忙于執行指令。如果IO等待時間很長,那么系統的瓶頸可能在磁盤IO。

  示例命令的輸出可以看見,大量CPU時間消耗在用戶態,也就是用戶應用程序消耗了CPU時間。這不一定是性能問題,需要結合r隊列,一起分析。

  mpstat-P ALL 1

$ mpstat -P ALL 1

Linux 3.13.0-49-generic (titanclusters-xxxxx)  07/14/2015  _x86_64_ (32 CPU)

07:38:49 PM  CPU   %usr  %nice   %sys %iowait   %irq  %soft  %steal  %guest  %gnice  %idle

07:38:50 PM  all  98.47   0.00   0.75    0.00   0.00   0.00    0.00    0.00    0.00   0.78

07:38:50 PM    0  96.04   0.00   2.97    0.00   0.00   0.00    0.00    0.00    0.00   0.99

07:38:50 PM    1  97.00   0.00   1.00    0.00   0.00   0.00    0.00    0.00    0.00   2.00

07:38:50 PM    2  98.00   0.00   1.00    0.00   0.00   0.00    0.00    0.00    0.00   1.00

07:38:50 PM    3  96.97   0.00   0.00    0.00   0.00   0.00    0.00    0.00    0.00   3.03

[...]

  該命令可以顯示每個CPU的占用情況,如果有一個CPU占用率特別高,那么有可能是一個單線程應用程序引起的。

  pidstat 1

$ pidstat 1

Linux 3.13.0-49-generic (titanclusters-xxxxx)  07/14/2015    _x86_64_    (32 CPU)

07:41:02 PM   UID       PID    %usr %system  %guest    %CPU   CPU  Command

07:41:03 PM     0         9    0.00    0.94    0.00    0.94     1  rcuos/0

07:41:03 PM     0      4214    5.66    5.66    0.00   11.32    15  mesos-slave

07:41:03 PM     0      4354    0.94    0.94    0.00    1.89     8  java

07:41:03 PM     0      6521 1596.23    1.89    0.00 1598.11    27  java

07:41:03 PM     0      6564 1571.70    7.55    0.00 1579.25    28  java

07:41:03 PM 60004     60154    0.94    4.72    0.00    5.66     9  pidstat

07:41:03 PM   UID       PID    %usr %system  %guest    %CPU   CPU  Command

07:41:04 PM     0      4214    6.00    2.00    0.00    8.00    15  mesos-slave

07:41:04 PM     0      6521 1590.00    1.00    0.00 1591.00    27  java07:41:04 PM     0      6564 1573.00   10.00    0.00 1583.00    28  java

07:41:04 PM   108      6718    1.00    0.00    0.00    1.00     0  snmp-pass

07:41:04 PM 60004     60154    1.00    4.00    0.00    5.00     9  pidstat

  pidstat命令輸出進程的CPU占用率,該命令會持續輸出,并且不會覆蓋之前的數據,可以方便觀察系統動態。如上的輸出,可以看見兩個JAVA進程占用了將近1600%的CPU時間,既消耗了大約16個CPU核心的運算資源。

  iostat-xz 1

$ iostat -xz 1

Linux 3.13.0-49-generic (titanclusters-xxxxx)  07/14/2015  _x86_64_ (32 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle

          73.96    0.00    3.73    0.03    0.06   22.21

Device:   rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util

xvda        0.00     0.23    0.21    0.18     4.52     2.08    34.37     0.00    9.98   13.80    5.42   2.44   0.09

xvdb        0.01     0.00    1.02    8.94   127.97   598.53   145.79     0.00    0.43    1.78    0.28   0.25   0.25

xvdc        0.01     0.00    1.02    8.86   127.79   595.94   146.50     0.00    0.45    1.82    0.30   0.27   0.26

dm-0        0.00     0.00    0.69    2.32    10.47    31.69    28.01     0.01    3.23    0.71    3.98   0.13   0.04

dm-1        0.00     0.00    0.00    0.94     0.01     3.78     8.00     0.33  345.84    0.04  346.81   0.01   0.00

dm-2        0.00     0.00    0.09    0.07     1.35     0.36    22.50     0.00    2.55    0.23    5.62   1.78   0.03

  iostat命令主要用于查看機器磁盤IO情況。該命令輸出的列,主要含義是:

  r/s, w/s, rkB/s, wkB/s:分別表示每秒讀寫次數和每秒讀寫數據量(千字節)。讀寫量過大,可能會引起性能問題。

  await:IO操作的平均等待時間,單位是毫秒。這是應用程序在和磁盤交互時,需要消耗的時間,包括IO等待和實際操作的耗時。如果這個數值過大,可能是硬件設備遇到了瓶頸或者出現故障。

  avgqu-sz:向設備發出的請求平均數量。如果這個數值大于1,可能是硬件設備已經飽和(部分前端硬件設備支持并行寫入)。

  %util:設備利用率。這個數值表示設備的繁忙程度,經驗值是如果超過60,可能會影響IO性能(可以參照IO操作平均等待時間)。如果到達100%,說明硬件設備已經飽和。

  -如果顯示的是邏輯設備的數據,那么設備利用率不代表后端實際的硬件設備已經飽和。值得注意的是,即使IO性能不理想,也不一定意味這應用程序性能會不好,可以利用諸如預讀取、寫緩存等策略提升應用性能。

  free -m

45

  free命令可以查看系統內存的使用情況,-m參數表示按照兆字節展示。最后兩列分別表示用于IO緩存的內存數,和用于文件系統頁緩存的內存數。需要注意的是,第二行-/+ buffers/cache,看上去緩存占用了大量內存空間。這是Linux系統的內存使用策略,盡可能的利用內存,如果應用程序需要內存,這部分內存會立即被回收并分配給應用程序。因此,這部分內存一般也被當成是可用內存。

  如果可用內存非常少,系統可能會動用交換區(如果配置了的話),這樣會增加IO開銷(可以在iostat命令中提現),降低系統性能。

  sar -n DEV 1

$ sar -n DEV 1

Linux 3.13.0-49-generic (titanclusters-xxxxx)  07/14/2015     _x86_64_    (32 CPU)

12:16:48 AM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s   %ifutil

12:16:49 AM      eth0  18763.00   5032.00  20686.42    478.30      0.00      0.00      0.00      0.00

12:16:49 AM        lo     14.00     14.00      1.36      1.36      0.00      0.00      0.00      0.00

12:16:49 AM   docker0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

12:16:49 AM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s   %ifutil

12:16:50 AM      eth0  19763.00   5101.00  21999.10    482.56      0.00      0.00      0.00      0.00

12:16:50 AM        lo     20.00     20.00      3.25      3.25      0.00      0.00      0.00      0.00

12:16:50 AM   docker0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

  sar命令在這里可以查看網絡設備的吞吐率。在排查性能問題時,可以通過網絡設備的吞吐量,判斷網絡設備是否已經飽和。如示例輸出中,eth0網卡設備,吞吐率大概在22 Mbytes/s,既176 Mbits/sec,沒有達到1Gbit/sec的硬件上限。

  sar -n TCP,ETCP 1

46

  sar命令在這里用于查看TCP連接狀態,其中包括:

  active/s:每秒本地發起的TCP連接數,既通過connect調用創建的TCP連接;

  passive/s:每秒遠程發起的TCP連接數,即通過accept調用創建的TCP連接;

  retrans/s:每秒TCP重傳數量;

  TCP連接數可以用來判斷性能問題是否由于建立了過多的連接,進一步可以判斷是主動發起的連接,還是被動接受的連接。TCP重傳可能是因為網絡環境惡劣,或者服務器壓力過大導致丟包。

  top

$ top

top - 00:15:40 up 21:56,  1 user,  load average: 31.09, 29.87, 29.92

Tasks: 871 total,   1 running, 868 sleeping,   0 stopped,   2 zombie

%Cpu(s): 96.8 us,  0.4 sy,  0.0 ni,  2.7 id,  0.1 wa,  0.0 hi,  0.0 si,  0.0 st

KiB Mem:  25190241+total, 24921688 used, 22698073+free,    60448 buffers

KiB Swap:        0 total,        0 used,        0 free.   554208 cached Mem

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND

 20248 root      20   0  0.227t 0.012t  18748 S  3090  5.2  29812:58 java

  4213 root      20   0 2722544  64640  44232 S  23.5  0.0 233:35.37 mesos-slave

 66128 titancl+  20   0   24344   2332   1172 R   1.0  0.0   0:00.07 top

  5235 root      20   0 38.227g 547004  49996 S   0.7  0.2   2:02.74 java

  4299 root      20   0 20.015g 2.682g  16836 S   0.3  1.1  33:14.42 java     1 root      20   0   33620   2920   1496 S   0.0  0.0   0:03.82 init

     2 root      20   0       0      0      0 S   0.0  0.0   0:00.02 kthreadd

     3 root      20   0       0      0      0 S   0.0  0.0   0:05.35 ksoftirqd/0

     5 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H

     6 root      20   0       0      0      0 S   0.0  0.0   0:06.94 kworker/u256:0

     8 root      20   0       0      0      0 S   0.0  0.0   2:38.05 rcu_sched

  top命令包含了前面好幾個命令的檢查的內容。比如系統負載情況(uptime)、系統內存使用情況(free)、系統CPU使用情況(vmstat)等。因此通過這個命令,可以相對全面的查看系統負載的來源。同時,top命令支持排序,可以按照不同的列排序,方便查找出諸如內存占用最多的進程、CPU占用率最高的進程等。

  但是,top命令相對于前面一些命令,輸出是一個瞬間值,如果不持續盯著,可能會錯過一些線索。這時可能需要暫停top命令刷新,來記錄和比對數據。

  總結

  排查Linux服務器性能問題還有很多工具,上面介紹的一些命令,可以幫助我們快速的定位問題。例如前面的示例輸出,多個證據證明有JAVA進程占用了大量CPU資源,之后的性能調優就可以針對應用程序進行。更多關于“云計算培訓”的問題,歡迎咨詢千鋒教育在線名師。千鋒教育多年辦學,課程大綱緊跟企業需求,更科學更嚴謹,每年培養泛IT人才近2萬人。不論你是零基礎還是想提升,都可以找到適合的班型,千鋒教育隨時歡迎你來試聽。

tags:
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
乌克兰XXXXXLMEDJYF| 西西人体大胆午夜啪啪| 午夜人妻免费视频| 亚洲一线产区二线产区| 99无人区码一码二码三码| 成人亚洲AV网站在线看AAAA| 国产欧美精品一区二区三区-老狼| 精品国产免费一区二区三区| 男朋友想吻我腿中间那个部位| 日本水蜜桃身体乳的美白效果| 性丰满ⅩXXOOO性FREE| 伊人久久亚洲综合| 产成人亚洲精品无码青青草原| 国产精品日日摸夜夜添夜夜添 | 中文精品一区二区三区四区| 暴躁妹妹CSGO| 饥渴少妇高清VIDEOS| 国产老妇伦国产熟女老妇久| 亚洲熟妇无码A∨| 亚洲色大成网站WWW在线| CHINESE裸体男野外GAY| 国产九九99久久99大香伊| 老师黑色双开真丝旗袍| 太紧了夹得我的巴好爽欧美| 亚洲综合久久无码色噜噜赖水 | 高清一区二区三区日本久| 精品人妻无码视频一区二区三区| 欧洲一卡2卡三卡4卡 乱码| 亚洲AV激情高潮抽搐乱色 | 免费无码又爽又刺激聊天APP | 久久精品无码一区二区APP| 日本精产国品一二三产品区别| 亚洲阿V天堂无码2020| jlzzjlzz全部女高潮| 激情内射亚洲一区二区三区爱妻| 欧洲美熟女乱又伦AV| 亚洲产国偷v产偷v自拍浪潮AV| av 成人 亚洲无码| 好男人网官网在线观看2019| 人人妻人人澡人人| 亚洲熟妇无码爱V在线观看| 丰满岳乱妇在线观看中字| 老头霸占人妻中文字幕| 无码人妻精品一区二区桃蜜| 97人澡人人添人人爽欧美| 国产专区一线二线三线品牌| 人妻中文字系列无码专区| 亚洲色18禁成人网站WWW永久 | 天堂在/线资源中文在线BT| 中文字幕久久久久人妻| 国模少妇一区二区三区咪咕| 人妻一区二区在线| 伊人久久精品亚洲午夜| 国产亚洲精久久久久久无码7| 人妻少妇偷人精品无码| 一二三四日本中文在线| 国产欧美日韩免费看AⅤ视频 | 内谢少妇XXXXX8老少交| 亚洲VA久久久噜噜噜久久天堂 | 色综合天天综合网天天小说| 一二三四免费观看在线6| 国产下药迷倒白嫩美女网站 | 亚洲AV无码专区色爱天堂老鸭窝| 边做边爱免费视频| 蜜桃成人无码区免费视频网站| 亚洲产在线精品亚洲第一站一| 高潮大叫喷水发抖抽搐| 欧美三级三级三级爽爽爽| 野花韩国视频在线观看免费高清| 国产精品无码久久久久| 日产精品乱码卡一卡2卡三网站| 中国熟妇浓毛HDSEX| 精品无码国产一区二区三区AV| 婷婷五月花丁香综合| 成年美女黄网站色大片免费看 | 精品人伦一区二区三区蜜桃| 无码毛片内射白浆视频| 成人片黄网站色大片免费观看AP| 男生裸睡勃起流出液体| 亚洲人成人一区二区三区| 国产婷婷色综合AV蜜臀AV| 少妇人妻好深好紧精品无码 | 在糖心VLOG唐伯虎女主角是谁| 和朋友换娶妻一起换着高清| 天堂AV无码一区二区三区| 成 人 免 费 黄 色| 欧美老熟妇XB水多毛多| 中文字幕人乱码中文字幕 | 精品亚洲国产成人小电影| 小说蜜汁樱桃林妙妙的结局| 公车掀起老师裙子进入在线| 人妻av无码一区二区三区| 97精品伊人久久大香线蕉APP| 久久天天躁夜夜躁狠狠躁2014| 亚洲国产日韩A在线播放| 国产亚洲精久久久久久无码蜜桃| 无码国产精品一区二区免费式直播 | 视频无码一区二区| 大帝AV在线一区二区三区| 日本丰满护士爆乳XXⅩ| 按摩师的巨大滑进我的身体 | 99久久国产综合精品成人影院| 久久久久久成人毛片免费看| 亚洲欧美另类激情综合区蜜芽| 国产亚洲欧美日韩精品一区二区| 无码一区二区av| 国产精品久久久久久久久鸭无码 | 国产精品55夜色66夜色| 熟妇人妻精品一区二区蜜桃| 丰满人妻少妇无码喷水| 日韩精品一区二区三区影院| 成人午夜亚洲精品无码网站| 日韩精品无码一区二区三区四区| 把腿张开老子CAO烂你| 人人玩人人添人人澡东莞| 变态拳头交视频一区二区| 日本XXXX色视频在线观看免费,| YY111111少妇影院免费观| 人妻少妇久久久久久97人妻| 成·人免费午夜无码区| 日老太太毛茸茸B.内射| 高潮到不停喷水的免费视频| 少妇人妻14页_麻花色| 国产成人无码一区二区三区| 午夜理论片YY6080影院| 国内精品人妻无码久久久影院导航| 亚洲 欧美 综合 另类 中字| 国偷自产AⅤ一区二区三区| 亚洲成人无码一区| 久久久精品国产SM最大网站| 尹人香蕉久久99天天拍| 嫩小槡BBBB槡BBBB槡| OLDVIDEO高潮日本熟妇| 日本不卡一区二区三区| 国产AV精品白浆一区二| 五月丁香六月午夜成人影院| 黑人与日本XXXXXTV| 亚洲中文字幕久在线| 末发育女AV片一区二区| ZZTT10.CCM黑料| 少妇特殊按摩高潮惨叫无码| 国产精品色内内在线播放| 亚洲AV怡红院AV男人的天堂 | 精品久久久久久无码免费| 亚洲最大综合久久网成人| 免费人成网WW555| 办公室娇喘的短裙老师| 四虎库影必出精品8848| 国产影片AV级毛片特别刺激| 亚洲欧美综合人成在线| 免费人成在线观看| 不卡高清AV手机在线观看| 玩弄丰满熟妇乱XXXXX性多毛| 好大好爽舔我高潮了| 夜夜高潮次次欢爽AV女| 欧美日产国产精品| 国产AV无码专区亚洲AV中文 | 无码国产玉足脚交久久2020| 精品欧美黑人久久久久| 2021国内精品久久久久精品| 日韩精品无码一区二区三区不卡 | 乱码一线二线三线新区破解欧| TOUGHTESTED硬汉系列| 天天爽夜夜爽人人爽一区二区| 狠狠躁夜夜躁人人爽碰AV| 中文字幕无码乱人伦| 三级国产三级在线| 火柴人战争遗产破解版| 2021无码专区人妻系列日韩 | 国产超碰人人模人人爽人人喊| 亚洲AV影院一区二区三区| 美女MM131爽爽爽作爱视频| 成人AV片无码免费网站| 亚洲AV涩涩涩成人网站| 免费A级毛片无码免费视频120| 成人网站V片免费观看| 亚洲AV无码专区青青草原| 男女18禁啪啪无遮挡激烈网站| 俄罗斯女人与马Z00Z视频| 亚洲成aV人无码| 欧美熟妇的性裸交| 国产我和子的与子乱视频| 最新在线精品国产福利| 天堂AV无码AV在线A√| 久久精品国产清高在天天线| 啊灬啊灬快灬高潮了视频| 小婷又软又嫩又紧水又多的视频| 乱子伦熟睡亚洲1区| 国产AV无码专区亚洲AV| 野花韩国视频在线观看免费高清| 日本丰满熟妇乱子伦| 极品少妇高潮XXXXX| А√天堂资源地址在线官网| 亚洲AV蜜桃无码精品无码| 欧美506070老妇乱子伦| 国产日产欧洲无码视频| 99在线精品免费视频九九视| 亚洲AV无码码潮喷在线观看| 热99RE久久免费视精品频| 娇小12-13╳YⅩ╳毛片高清|