1. 程式人生 > 其它 >2022-4總結

2022-4總結

Linux下七種檔案型別

檔案型別標識 檔案型別
- 普通檔案
d 目錄
l 符號連結
s(偽檔案) 套接字
b(偽檔案) 塊裝置
c(偽檔案) 字元裝置
p(偽檔案) 管道

佔用儲存空間的型別:檔案、目錄、符號連結。符號連結記錄的是路徑,路徑不長時存在innode裡面。其他四種:套接字、塊裝置、字元裝置、管道是偽檔案,不佔用磁碟空間。

linux執行緒排程

https://www.cnblogs.com/leisure_chn/p/10393707.html

linux除錯

https://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/index.html

ldd 檢視依賴

lsof

lsof -i :3306 //列出誰在使用某個埠
lsof -u test -c mysql //列出某個使用者以及某個程序所開啟的檔案資訊

pstack 命令必須由相應程序的屬主或 root 執行。可以使用 pstack 來確定程序掛起的位置。此命令允許使用的唯一選項是要檢查的程序的 PID。

strace 跟蹤程序中的系統呼叫

ipcs是Linux下顯示程序間通訊設施狀態的工具。可以顯示訊息佇列、共享記憶體和訊號量的資訊。對於程式設計師非常有用,普通的系統管理員一般用不到此指令。

top命令是Linux下常用的效能分析工具,能夠實時顯示系統中各個程序的資源佔用狀況

free工具用來檢視系統可用記憶體

vmstat是Virtual Meomory Statistics(虛擬記憶體統計)的縮寫,可實時動態監視作業系統的虛擬記憶體、程序、CPU活動。

iostat是I/O statistics(輸入/輸出統計)的縮寫,用來動態監視系統的磁碟操作活動。

Linux 核心提供了一種通過 /proc 檔案系統,在執行時訪問核心內部資料結構、改變核心設定的機制。proc檔案系統是一個偽檔案系統,它只存在記憶體當中,而不佔用外存空間。它以檔案系統的方式為訪問系統核心資料的操作提供介面。

執行緒池技術

https://www.cnblogs.com/yougewe/p/12267274.html

執行緒池包含3個部分:

  1. 執行緒:核心執行緒和工作執行緒。

  2. 阻塞佇列:用於待執行任務排隊。

  3. 被拒絕時的處理器。

鎖頭

https://blog.csdn.net/Saintyyu/article/details/108295657

Lock 同步鎖是基於 Java 實現的,而 Synchronized 是基於底層作業系統的 Mutex Lock 實現的,每次獲取和釋放鎖操作都會帶來使用者態和核心態的切換,從而增加系統性能開銷。因此,在鎖競爭激烈的情況下,Synchronized同步鎖在效能上就表現得非常糟糕,它也常被大家稱為重量級鎖。

c的巨集

https://blog.csdn.net/USB_ABC/article/details/73702310

JDK/Dubbo/Spring 三種 SPI 機制

https://segmentfault.com/a/1190000039812642#item-2

序列化之tlv

https://www.cnblogs.com/binarylei/p/10991550.html

shell特殊字元

https://blog.csdn.net/K346K346/article/details/51819236

springmvc 非同步處理

https://blog.csdn.net/weixin_35974321/article/details/114276076?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_title~default-0.pc_relevant_default&spm=1001.2101.3001.4242.1&utm_relevant_index=3

延遲和吞吐量

https://zhuanlan.zhihu.com/p/111914041

延遲(latency) = 請求響應出入系統的時間

響應時間(ResponseTime)= 客戶端請求開始,一直到收到響應的時間 = 延遲 + 網路耗時

理想狀態下,延遲越低,吞吐越高,當然這是對單機單執行緒而言的,在分散式下就不成立了,舉個反例:

比如從密雲水庫,拉一個水管到國貿,水流到國貿,需要1小時;如果再拉一個水管到順義,20分鐘就可以。如果你在國貿用水龍頭接水,你可以單位時間接到非常多的水,這個數量跟你在過國貿還是順義,沒有關係,只跟水庫單位時間輸入的水量/水壓有關係。但是如果你在水管裡放一個小球,它從密雲到國貿的時間是到順義的時間的三倍,這樣對於到國貿的這個水管系統,延遲很高,但是系統的吞吐量跟到順義的是一樣的。

zgc

https://tech.meituan.com/2020/08/06/new-zgc-practice-in-meituan.html

cookie、session

https://www.jianshu.com/p/b5efddc433f5

會話跟蹤

http頭:Set-Cookie、Cookie

Cookie具有不可跨域名性

生成:

Set-Cookie響應頭欄位(Response header)是伺服器傳送到瀏覽器或者其他客戶端的一些資訊,一般用於登陸成功的情況下返回給客戶端的憑證資訊,然後下次請求時會帶上這個cookie,這樣伺服器端就能知道是來自哪個使用者的請求了。

瀏覽器在響應頭中發現Set-Cookie欄位,就會將該欄位的值儲存在記憶體或者硬碟中。Set-Cookie欄位的值可以是很多項Cookie,每一項都可以指定過期時間Expires。 預設的過期時間是使用者關閉瀏覽器時。

儲存:

存在客戶端,瀏覽器規定的,磁碟上有一個檔案叫Cookies

Session是伺服器端使用的一種記錄客戶端狀態的機制,使用上比Cookie簡單一些,相應的也增加了伺服器的儲存壓力。

一個登入場景,也不必往 session 存太多東西,那為什麼不直接打包到 cookie 中呢?這樣服務端不用存了,每次只要核驗 cookie 帶的「證件」有效性就可以了,也可以攜帶一些輕量的資訊。這種方式通常被叫做 token。

前端鑑權

https://segmentfault.com/a/1190000040524090

tomcat載入spring和springmvc及servlet相關知識

https://www.cnblogs.com/top-housekeeper/p/14105297.html

tomcat啟動了之後會在作業系統中生成一個Jvm(Java虛擬機器)的程序,從配置監聽埠(預設8080)監聽發來的HTTP/1.1協議的訊息

Class.forName(className)與ClassLoader().loadClass(className)區別

  • ClassLoader.loadClass(className)方法,內部實際呼叫的方法是 ClassLoader.loadClass(className,false);

  • 第2個 boolean引數,表示目標物件是否進行連結,false表示不進行連結,由上面介紹可以,不進行連結意味著不進行包括初始化等一些列步驟,那麼靜態塊和靜態物件就不會得到執行。

  • ----------------------------------------------------------------------------------->

  • Class.forName(className)方法,內部實際呼叫的方法是 Class.forName(className,true,classloader);

  • 第2個boolean引數表示類是否需要初始化, Class.forName(className)預設是需要初始化。

  • 一旦初始化,就會觸發目標物件的 static塊程式碼執行,static引數也也會被再次初始化。