2022-4總結
檔案型別標識 | 檔案型別 |
---|---|
- | 普通檔案 |
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個部分:
-
執行緒:核心執行緒和工作執行緒。
-
阻塞佇列:用於待執行任務排隊。
-
被拒絕時的處理器。
鎖頭
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://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)預設是需要初始化。
-