2. vmstat — 虛擬內(nèi)存統(tǒng)計
linux 的vmstat命令用于顯示虛擬內(nèi)存、內(nèi)核線程、磁盤、系統(tǒng)進程、i/o 塊、中斷、cpu 活動 等的統(tǒng)計信息。
java線程之間的通信總是隱式進行 java并發(fā)模型—硬件視圖 內(nèi)存空間 共享對象 共享對象 共享對象 內(nèi)存中的jvm 對象在線 程之間共享 線程1 線程2 處理器a 處理器b 處理器c 處理器d java并發(fā)模型—操作系統(tǒng)視圖 jvm進程 hotspot vm中, java線程被一對一 java線程 java線程 java線程 映射為本地操作系 統(tǒng)線程 linux kernel 操作系統(tǒng)內(nèi)核 直接調(diào)度java 線程給可用的cpu處理器a 處理器b 處理器c 處理器d 編譯器和處理器喜歡不擇手段的冒險源代碼 編譯器優(yōu)化 指令級并行 內(nèi)存系統(tǒng)的 最終執(zhí)行的 的重排序 的重排序 重排序 指令序列 編譯器的 重排序 重排序 指令級并行的 處理器的 重排序 重排序 內(nèi)存系統(tǒng)的 重排序 順序一致性內(nèi)存模型的原型結(jié)構(gòu) 處理器a 處理器b 處理器c 處理器c a3 b2 c4 d1 程序順 a2 b1 c3 d2 序不變 a1 c2 每個內(nèi)存 c1 單元一個 fifo隊列內(nèi)存單元 1 2 3 4 5 6 7 8 9 10 11 12 13 … … n順序一致性內(nèi)存模型的程序員視圖 線程 線程 線程 線程 … 2 3 n 1 內(nèi)存 順序一致性內(nèi)存模型的2 大特性 特性2 線程a 的程序順序 操作的執(zhí)行整體上無序,但兩個線程 都只能看到這個執(zhí)行順序。
centos 6 發(fā)行版中的內(nèi)核已經(jīng)包含了 mppe模塊,不需要再去安裝配置動態(tài)內(nèi)核加載(dkms ) 和 kernel_ppp_mppe 模塊,具體的配置如下:。
系統(tǒng)線程(內(nèi)核線程、內(nèi)核態(tài))和用戶線程的區(qū)別。
# vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free inact active si so bi bo in cs us sy id wa st
1 0 0 810420 97380 70628 0 0 115 4 89 79 1 6 90 3 0
3. lsof — 打開文件列表
lsof 命令對于很多 Linux/Unix 系統(tǒng)都可以使用,主要以列表的形式顯示打開的文件和進程。
打開的文件主要包括磁盤文件、網(wǎng)絡套接字、管道、設備和進程。使用這個命令的主要原因是一個一個盤不能卸載并且顯示文件正在使用或者打開的錯誤信息。這個命令很容易看出哪些文件正在使用。這個命令最常用的格式:
# lsof
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
init 1 root cwd DIR 104,2 4096 2 /
init 1 root rtd DIR 104,2 4096 2 /
init 1 root txt REG 104,2 38652 17710339 /sbin/init
-rw-r--r-- 1 root root 71 aug 14 1995 ld.so.conf。
ddb90000 292k r-x-- /usr/lib/ld.so.1。
ddbe9000 16k rwx-- /usr/lib/ld.so.1。
6、root下, vim /etc/ld.so.conf, 增加一行, /usr/local/lib (因為opencv的庫文件在local,默認情況下local/lib中的庫文件是不在系統(tǒng)啟動時被load的)。