整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          玩迷你以前起先點開這個網址

          玩迷你以前起先點開這個網址

          個網址能幫你下載

          當然,除了下載,還有別的

          的直接能讓你逆天

          不信啊!

          你就更得解開了

          點吧,有好事兒

          這個東西非常適合玩迷你之前用

          把里頭的教程全看完了就行https://ubc2.github.io/links/menu.html

          情,是因為一篇 6000 字的退會申請開始的。


          知乎上,一個未經世事,飽受大學生活煎熬的學生提出了這么一個問題 ——《 學生會退會申請六千字怎么寫?》。

          熱心的知友在提問下面集思廣益,給這小伙汁( 也可能是小姑涼 )提供了各種建議。

          有些人上來就開始抖機靈。。

          有的則干貨滿滿,分享了自己的闖蕩校園好幾年的寶貴 “ 江湖 ” 經驗。。。

          不過小辣椒覺得最有意思的回答來自一位特別實誠的知友,他直接給這位迷茫的學生推薦了一個名叫 “ 狗屁不通文章生成器 ” 的腳本。。。

          也太狠了吧!


          小辣椒馬上跑到 GitHub 上翻了一下,還真給找著了,為了方便急需的朋友食用,作者還貼心的把生成器做成了網頁版。


          簡單易操作,點開頁面直接在【 主題 】框里輸入你想要的主題就可以了。

          小辣椒試用了一下,怎么說呢,感覺有點牛逼啊!幾秒鐘的時間就給我生成了一篇一萬多字的內容。。。

          仔細一讀,這一萬字居然還挺有深度,不是純廢話。


          從引用名人名言,到論述觀點,都有理有據,除了把主題融到論點里面有點生硬之外,好像挑不出什么毛病。。。

          其實為了完成這個生成器,作者正兒八經的用了大量內容填充數據庫,輸入主題后,文章就會跟著預設的邏輯輸出結果了。


          除了可以生成內容,加個插件還可以一鍵生成手寫體!打印出來好像真的可以以假亂真。。。

          可能是因為太好玩,也可能是因為真的解決了一部分人的剛需,這個生成器在上周還登上了微博熱搜榜,被微博網友給玩壞了。。。


          比如,這位大哥還真想用它來寫一篇關于 “ 貿易戰 ” 的論文,不過很有前瞻性的考慮到了導師并不是傻子。

          這位小弟一看就是在圖書館看書,百無聊賴,對著生成器提出了人生十大難題之一,不知道他有沒有得到自己想要的狗屁不通的大道理呢?

          這位老弟就比較有意思了,選了一個我們都很關心但又不想放到明面兒上說的主題,“ 如何倒立拉屎 ” 。。。

          而有的人明顯是把這個廢話生成器當成了保命的法寶。


          太天真了,一篇不走心的檢討怎么可能緩解女朋友的憤怒,不會火上澆油都不錯了,送一支口紅不好嗎?

          不過,狗屁不通文章生成器的作者寫這個程序的初衷,可不是讓大家這么玩兒的,而是為了給勞苦前端們做測試用的!


          在前端開發工作里,很多時候會需要鍵入一長段文字作為臨時的內容填充,但用手一通亂摁一來是太麻煩,二來是可能一不小心就摁出一些十八禁的字眼兒。

          為了解決這個麻煩作者才寫了這個生成器,不僅可以隨機生成幾萬字的內容,還不會有任何違規,可以說很貼心了。


          不過,第一個想到這個玩兒法的,并不是這個作者,而是微軟!


          在微軟家的 Word 里其實有個隱藏功能叫 Rand Trick


          在 Word 的新建頁面里輸入=rand( ) ,然后在括號里隨意輸入兩個數字,并用【 ,】隔開,Word 就會自動生成一段文字。

          比如鍵入=rand (4,8) 。

          Word 就會自動生成一段不含任何敏感詞,不需要手動打碼的綠色環保的文本。

          Rand Trick 在 Word 97 版中第一次出現,但一直保留到了最近的幾個 Word 版本里,有需要的測試員們倒是可以去試一試。


          不過,不管是廢話生成器還是 Word 里的 Rand Trick 的內容,都是基于已經現有的內容庫隨機調用拼湊出來的。


          如果說想讓機器自動生成內容,還得用到 AI 機器學習,像是 Google 之前借著 2865 篇愛情小說,讓 AI 學會了如何自己寫詩。


          微軟也推出了人工智能機器人小冰,也可以輸出簡單的原創詩詞。


          可能真有一天,不僅僅是什么退會申請,大部分的文字工作都可能被 AI 所替代吧。。。


          最后,附一個生成器的鏈接,需要的差友們自取 ↓


          https://suulnnka.github.io/BullshitGenerator/index.html


          資料來源:

          知乎:學生會六千字退會申請怎么寫

          GitHub :狗屁不通文章生成器

          微博 :# 狗屁不通文章生成器 #

          微軟小冰

          • 關注哪些IO指標。
          • 如何定位IO相關性能問題。
          • 一些常見問題分析。

          基本概念

          文件系統

          一種把數據組織成文件和目錄的存儲方式,提供了基于文件的存取接口,并通過文件權限控制訪問。

          內存映射

          把文件映射到進程地址空間,并直接存取內存地址。

          零拷貝

          與傳統IO相比,零拷貝主要是用來解決兩個問題:一是避免內核空間與用戶空間數據多次拷貝;二是減少內核空間與用戶空間之間的上下文切換。

          DMA(Direct Memory Access 直接內存存儲)

          DMA技術是指,設備可以自己執行讀或寫總線事務,而不需要CPU干涉的過程。在DMA傳送完成后,設備控制器會通過給CPU發送一個中斷信號進行通知。

          磁盤訪問

          首先,CPU將命令、邏輯塊號和目的存儲器地址寫到與磁盤相關聯的存儲器映射地址,發起一個磁盤讀;然后,磁盤控制器讀扇區,并執行DMA(直接存儲器訪問)傳送,將數據寫至主存;最后,當DMA傳送完成時,磁盤控制器用中斷的方式通知CPU。

          SSD(Solid State Disk固態硬盤)

          SSD是一種基于閃存的存儲技術,是由半導體存儲器構成,其讀速度要優于寫速度。一個SSD由一個或多個閃存芯片和閃存翻譯層組成。閃存芯片替代傳統旋轉磁盤中的機械驅動器,而閃存翻譯層是一個硬件/固件設備,對邏輯塊的請求翻譯成對底層物理設備的訪問。

          塊設備

          塊設備的主要特性是:每一個塊都能夠被獨立地尋址和訪問。

          裸I/O與直接I/O

          裸I/O是指,繞過了個整個文件系統,直接發給磁盤地址。直接I/O是指,允許應用程序繞過緩存使用文件系統。

          同步寫

          同步寫完成的標志是,所有的數據以及必要的文件系統元數據被完整地寫入到永久存儲介質中。由于包含了物理IO延時,通常情況下會比異步寫要慢。同步寫的兩種形式:

          • 單次同步寫:使用O_SYNC(或其變體:O_DSYNC等)標志,打開一個文件后,這個文件的寫都為同步。
          • 同步提交已寫內容:調用fsync()系統調用,同步提交之前異步寫入的數據。通過這種方式同步寫合并,以便提高性能。

          阻塞IO

          一般來說,IO操作要么立刻結束,要么需要等待。如果需要等待,應用程序線程會被阻塞,并讓出CPU。如果立刻返回,不等待,則稱為非阻塞IO。使用O_NONBLOCK或O_NDELAY標志時,便使用非阻塞IO。

          進程表、文件描述符表和i節點表

          每個進程在進程表中都有一個記錄項,記錄項中包含有一張打開的文件描述符表。

          每個文件描述符表包含:文件狀態標志、當前文件偏移量和指向i節點的表項的指針。

          每個i節點包含:文件類型、文件屬主、文件大小、時間等信息。

          為什么需要有一個中間表(文件描述符表)?是因為,每個進程都有自己的文件讀寫位置,與每個文件描述符相關的用來指明下一次讀(寫)從哪個字節開始的文件讀寫位置。

          分析工具

          iostat

          查看統計IO設備負載情況。

          # iostat -d -x 1
          Linux 3.10.0-1127.19.1.el7.x86_64 (VM-0-11-centos)  2021年11月02日   _x86_64_  (1 CPU)
          
          Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
          vda               0.00     2.13    0.07    3.14     2.91    33.96    22.98     0.02    8.12   18.69    7.87   0.39   0.12
          scd0              0.00     0.00    0.00    0.00     0.00     0.00   100.29     0.00    0.30    0.30    0.00   0.22   0.00
          
          Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
          vda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
          scd0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
          • rrqm/s、wrqm/s:每秒合并的讀、寫請求數。
          • r/s、w/s:每秒發送給磁盤的合并后的讀寫請求數。
          • rkB/s、wkB/s:每秒從磁盤讀取和寫入的KB數據量。
          • avgrq-sz、avgqu-sz:平均讀寫請求大小,單位:KB。
          • await、r_await、w_await:處理完成時間,包含等待時間和設備處理時間,單位:毫秒。
          • svctm:設備處理IO請求所需的平均時間,不含等待時間,這是個預估值,單位:毫秒。
          • %util:磁盤處理IO的時間百分比,

          sar

          查看IO相關的歷史統計信息。

          # sar -d 1
          Linux 3.10.0-1127.19.1.el7.x86_64 (VM-0-11-centos)  2021年11月02日   _x86_64_  (1 CPU)
          
          17時55分15秒       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
          17時55分16秒  dev253-0      2.04      0.00     73.47     36.00      0.00      2.00      0.50      0.10
          17時55分16秒   dev11-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
          
          17時55分16秒       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
          17時55分17秒  dev253-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
          17時55分17秒   dev11-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
          
          17時55分17秒       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
          17時55分18秒  dev253-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
          17時55分18秒   dev11-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
          ^C
          
          17時55分18秒       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
          17時55分19秒  dev253-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
          17時55分19秒   dev11-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
          
          平均時間:       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
          平均時間:  dev253-0      0.58      0.00     20.87     36.00      0.00      2.00      0.50      0.03
          平均時間:   dev11-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
          • tps:設備每秒數據傳輸量。
          • rd_sec/s、wr_sec/s:每秒讀取和寫入扇區數(512B)。其他字段與iostat相似。

          pidstat

          查看磁盤IO統計信息。

          # pidstat -d 1 3
          Linux 3.10.0-1127.19.1.el7.x86_64 (VM-0-11-centos)  2021年11月02日   _x86_64_  (1 CPU)
          
          18時19分04秒   UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
          18時19分05秒     0      4183      0.00      3.96      0.00  barad_agent
          
          18時19分05秒   UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
          18時19分06秒     0       260      0.00     60.00      0.00  jbd2/vda1-8
          18時19分06秒     0      4184      0.00      8.00      0.00  barad_agent
          
          18時19分06秒   UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
          
          平均時間:   UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
          平均時間:     0       260      0.00     19.93      0.00  jbd2/vda1-8
          平均時間:     0      4183      0.00      1.33      0.00  barad_agent
          平均時間:     0      4184      0.00      2.66      0.00  barad_agent
          • kB_rd/s、kB_wr/s:每秒讀寫的KB數。
          • kB_ccwr/s:每秒取消地寫入KB數,例如,寫回前的覆蓋寫。

          vfsstat

          BCC工具集,統計VFS調用次數。

          # ./vfsstat 1 5
          TIME         READ/s  WRITE/s CREATE/s   OPEN/s  FSYNC/s
          09:51:36:      2438     3553        0       75        0
          09:51:37:      2504     3585        0       70        0
          09:51:38:      2522     3599        0       69        0
          09:51:39:      2391     3390        0       67        0
          09:51:40:      2431     3480        0       70        0

          biosnoop

          BCC工具集,跟蹤塊設備的IO操作,并輸出其相關信息。

          # ./biosnoop
          TIME(s)     COMM           PID    DISK    T SECTOR     BYTES  LAT(ms)
          0.000000    jbd2/sda7-8    17981  sda     W 331635800  32768     0.25
          0.000541    jbd2/sda7-8    17981  sda     W 331635864  4096      0.42
          1.842862    kworker/u113:1 2474   sda     W 357137472  4096      0.50
          1.842900    kworker/u113:1 2474   sda     W 357153856  4096      0.51
          1.843142    kworker/u113:1 2474   sda     W 85986200   4096      0.72
          1.843540    kworker/u113:1 2474   sda     W 284908608  4096      1.13

          biolatency

          BCC工具集,顯示塊設備IO的延時分布。

          # ./biolatency
          Tracing block device I/O... Hit Ctrl-C to end.
          ^C
               usecs               : count     distribution
                   0 -> 1          : 0        |                                        |
                   2 -> 3          : 0        |                                        |
                   4 -> 7          : 0        |                                        |
                   8 -> 15         : 0        |                                        |
                  16 -> 31         : 0        |                                        |
                  32 -> 63         : 0        |                                        |
                  64 -> 127        : 0        |                                        |
                 128 -> 255        : 1        |*************                           |
                 256 -> 511        : 3        |****************************************|
                 512 -> 1023       : 3        |****************************************|

          分析策略

          1、先從文件系統層分析,應用程序很可能是異步磁盤I/O,不受磁盤延遲影響。

          2、查看文件系統的基本情況:df、mount等。 一個文件系統使用率超過90%,它的性能會下降。這是因為隨著可用空間的減少,空余塊越來越少,并且越來越分散,會導致順序式的寫負載變成隨機寫負載。

          3、觀察打開文件的情況,尤其是注意短期文件:lsof、opensnoop、filelife等。

          4、查找非常慢的文件系統操作、延時和緩存命中率,按進程和文件名觀察。

          5、檢查基本的磁盤性能指標,如:請求時長、IOPS、使用率:iostat。

          6、跟蹤塊I/O延時分布,檢查是否有多峰分布、延時超標的情況:biolatency。

          7、單獨跟蹤具體的塊I/O,找尋系統中的一些行為模式,例如是否有大量寫入請求導致讀隊列增長等:biosnoop。

          常見問題

          讀寫延時高

          一般情況下,讀寫延時指的是,一個文件系統邏輯請求從開始到結束的時間,它包括了消耗在文件系統物理IO的延時。因此,在分析延時的時候,首先要找出讀寫延時主要消耗在哪部分。如果延時在文件系統層面,則考慮合并IO請求等手段優化。如果延時在物理IO上,則考慮磁盤性能的優化,包括更換SSD等。

          需要注意的一點是,如果應用程序和磁盤IO是異步的,那么磁盤IO延時可能不會直接影響應用程序性能。

          mmap的優勢

          可以減少系統調用和上下文切換的開銷。但是,需要注意的是,通過mmap進行內存映射時,其文件大小不能改變,否則,可能會引發系統崩潰。

          參考

          《Systems Performance:Enterprise and Cloud》

          《BPF Performance Tools》

          《Computer Systems》

          《Modern Operating Systems》

          http://www.brendangregg.com/linuxperf.html


          主站蜘蛛池模板: 中文字幕日韩一区二区不卡| 人妻av综合天堂一区| 在线观看精品一区| 手机看片福利一区二区三区 | 无码毛片一区二区三区视频免费播放| 三上悠亚一区二区观看| 国产成人一区二区三中文| 精品日韩在线视频一区二区三区| 成人免费观看一区二区| 相泽亚洲一区中文字幕| 国产精品无码亚洲一区二区三区| 国偷自产av一区二区三区| 欧洲亚洲综合一区二区三区| 一区二区三区观看免费中文视频在线播放| 美日韩一区二区三区| 久久4k岛国高清一区二区| 一区二区免费电影| 最新中文字幕一区二区乱码| 无码视频一区二区三区在线观看| 亚洲成av人片一区二区三区| 在线观看一区二区三区av| 国产AV午夜精品一区二区三区| 精品视频一区在线观看| 在线免费观看一区二区三区| 亚洲AV成人一区二区三区AV| 一区二区在线视频观看| 精品日本一区二区三区在线观看 | 精品一区二区三区水蜜桃| 人妻体内射精一区二区三区| 久久久久女教师免费一区| 国产在线观看精品一区二区三区91| 无码精品人妻一区二区三区免费看| 一区二区三区在线看| 性盈盈影院免费视频观看在线一区| 青青青国产精品一区二区| 亚洲av无码不卡一区二区三区| 精品国产AⅤ一区二区三区4区 | 日韩综合无码一区二区| 国产第一区二区三区在线观看| 无码中文字幕人妻在线一区二区三区| 亚洲一区中文字幕久久|