久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

[20191119]探究ipcs命令輸出2.txt

 路人甲Java 2022-09-17 發(fā)布于北京

[20191119]探究ipcs命令輸出2.txt

--//繼續(xù)上午的測試:http://blog./267265/viewspace-2664758/=>[20191119]探究ipcs命令輸出.txt
--//先補(bǔ)充ipcs 剩余2個參數(shù) -l -u
--//-l     limits
--//-u     summary

$ ipcs -l
------ Shared Memory Limits --------
max number of segments = 4096
max seg size (kbytes) = 67108864
max total shared memory (kbytes) = 17179869184
min seg size (bytes) = 1

------ Semaphore Limits --------
max number of arrays = 128
max semaphores per array = 2600
max semaphores system wide = 332800
max ops per semop call = 2600
semaphore max value = 32767

------ Messages: Limits --------
max queues system wide = 32768
max size of message (bytes) = 65536
default max size of queue (bytes) = 65536

$ ipcs -u
------ Shared Memory Status --------
segments allocated 5
pages allocated 158305
pages resident  129633
pages swapped   0
Swap performance: 0 attempts     0 successes

------ Semaphore Status --------
used arrays = 1
allocated semaphores = 204

------ Messages: Status --------
allocated queues = 0
used headers = 0
used space = 0 bytes

--//剩下kernel.sem = SEMMSL SEMMNS SEMOPM SEMMNI
kernel.sem = SEMMSL SEMMNS SEMOPM SEMMNI

where

semmsl:  The number of semaphores per set            每組信號量
semmns:  The total number of semaphores available    可用信號量的總數(shù)
semopm:  The number of operations which can be made per semaphore call 每個信號量呼叫可以執(zhí)行的操作數(shù),。
semmni:  The maximum number of shared memory segments available in the system 系統(tǒng)中可用的最大共享內(nèi)存段數(shù)
--//(我覺得這里是指信號量),。

1.環(huán)境:
# grep "^kernel.s[he]" /etc/sysctl.conf
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
kernel.shmmni = 4096
kernel.sem = 2600 332800 2600 128

SCOTT@book> show sga
Total System Global Area  643084288 bytes
Fixed Size                  2255872 bytes
Variable Size             205521920 bytes
Database Buffers          427819008 bytes
Redo Buffers                7487488 bytes

SCOTT@book> show parameter processes
NAME      TYPE    VALUE
--------- ------- -----
processes integer 200

--//重新定義環(huán)境變量
export ORACLE_SID=book

--//順便說一下我的定義:kernel.sem = 2600 332800 2600 128
--//實(shí)際上我開始學(xué)oracle什么都不懂,上新聞組問了這個問題,對方給我的解答.第一個參數(shù)與processes有關(guān)在此基礎(chǔ)上+10就可以.
--//第2個參數(shù)使用第1個參數(shù)*第4個參數(shù) = 2600*128 = 332800.第3個參數(shù)他給我的建議等于第1個參數(shù).
--//我當(dāng)時什么都不懂,既然對方這么建議,按照對方建議先嘗試看看.以后也沒有在意這個參數(shù),剩下的步驟copy and paste.
--//如果大家看我在單位安裝的服務(wù)器,基本上這個參數(shù)都是這樣設(shè)置.經(jīng)典copy and paste操作.

2.測試1:
$ ipcs

------ Shared Memory Segments --------
key        shmid      owner      perms      bytes      nattch     status
0x00000000 407011329  oracle    640        12582912   25
0x00000000 407044098  oracle    640        633339904  25
0xe8a8ec10 407076867  oracle    640        2097152    25

------ Semaphore Arrays --------
key        semid      owner      perms      nsems
0x6aa88594 328302592  oracle    640        204

------ Message Queues --------
key        msqid      owner      perms      used-bytes   messages

$ ps -ef | egrep "[o]raclebook|ora_.*_boo[k]"|wc
     25     201    1597

--//注意看Semaphore Arrays的nsems=204,也就是sem的數(shù)量.你可以測試如果processes增加,該數(shù)值也會增加相同的數(shù)量.
--//當(dāng)然我當(dāng)前設(shè)置kernel.sem的semmsl=2600,遠(yuǎn)遠(yuǎn)超出processes的數(shù)值,不會建立多個信號組.
$ ipcs -s -i 328302592 | awk '/semnum/,/^203/' | awk '$5>0 {print $5}' | sort | uniq -c
      5 56258
      1 56261
      1 56263
      1 56269
      1 56273
      1 56277
      1 56279
      1 56281
      1 56283
      1 56285
      1 56287
      1 56289
      1 56291
      1 56293
      1 56295
      1 56306
      1 56307
      1 56309
      1 56311
      1 56313
      1 56321
      1 56323
      1 56325
      1 56327
      1 56329
      1 pid

$ ipcs -s -i 328302592 | awk '/semnum/,/^203/' | awk '$5>0 '
semnum     value      ncount     zcount     pid
0          0          0          0          56258
1          2559       0          0          56258
2          19574      0          0          56258
3          1          0          0          56258
6          0          0          0          56261
7          0          1          0          56263
9          0          1          0          56269
11         0          1          0          56273
13         0          1          0          56277
14         0          1          0          56279
15         0          1          0          56281
16         0          1          0          56283
17         0          1          0          56285
18         0          1          0          56287
19         0          1          0          56289
20         0          1          0          56291
21         0          1          0          56293
22         0          1          0          56295
25         0          0          0          56307
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
26         0          1          0          56306
27         0          1          0          56309
28         0          1          0          56311
29         0          1          0          56313
30         0          1          0          56329
31         0          0          0          56327
32         0          0          0          56321
33         0          0          0          56323
34         0          0          0          56325
203        0          0          0          56258

--//semnum應(yīng)該表示序號.pid對應(yīng)進(jìn)程號.其它value,ncount,zcount 表示什么,不懂.
--//https://blog.csdn.net/macky0668/article/details/6839559
--//ncount列出等待信號量增加的進(jìn)程的個數(shù).
--//zcount列出正在等待信號量變成零的進(jìn)程的個數(shù)

$ ps -fp 56307
UID        PID  PPID  C STIME TTY          TIME CMD
oracle   56307 56254  0 15:35 ?        00:00:00 oraclebook (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
--//疑問什么情況下ncount=1,pid=56307.視乎是使用后信號量后才會增加.

$ ps -fp 56258
UID        PID  PPID  C STIME TTY          TIME CMD

$ ipcs -m -p
------ Shared Memory Creator/Last-op --------
shmid      owner      cpid       lpid
407011329  oracle     56258      56458
407044098  oracle     56258      56458
407076867  oracle     56258      56458
--//Shared Memory Creator 的pid=56258,已經(jīng)不存在.但是你可以發(fā)現(xiàn)Semaphore Array semid=328302592中占5行.
--//視乎前面的4行永遠(yuǎn)不會覆蓋.也就是kernel.sem的semmsl大于processes+4才會僅僅使用Semaphore Arrays.

# grep "^kernel.s[he]" /etc/sysctl.conf
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
kernel.shmmni = 4096
kernel.sem = 100 332800 100 128

# sysctl -p

SYS@book> startup
ORACLE instance started.
Total System Global Area  643084288 bytes
Fixed Size                  2255872 bytes
Variable Size             205521920 bytes
Database Buffers          427819008 bytes
Redo Buffers                7487488 bytes
Database mounted.
Database opened.

$ ipcs -s

------ Semaphore Arrays --------
key        semid      owner      perms      nsems
0x6aa88594 328433664  oracle    640        51
0x6aa88595 328466433  oracle    640        51
0x6aa88596 328499202  oracle    640        51
0x6aa88597 328531971  oracle    640        51
0x6aa88598 328564740  oracle    640        51

$ ipcs -u -m
------ Shared Memory Status --------
segments allocated 5
pages allocated 158305
pages resident  111201
pages swapped   0
Swap performance: 0 attempts     0 successes
--//建立了5個Semaphore Array,每個大小nsems=51.
--//為什么不建立3個Semaphore Array,nsems=100或者70?

$ ipcs -m -p

------ Shared Memory Creator/Last-op --------
shmid      owner      cpid       lpid
407142401  oracle     56667      56733
407175170  oracle     56667      56733
407207939  oracle     56667      56733

$ ipcs -s | awk '/0x/ {print $2}' | xargs -I {} ipcs -s -i {} | grep 56667
0          1          0          0          56667
1          2559       0          0          56667
2          19574      0          0          56667
3          1          0          0          56667
0          1          0          0          56667
1          2559       0          0          56667
2          19574      0          0          56667
3          1          0          0          56667
0          1          0          0          56667
1          2559       0          0          56667
2          19574      0          0          56667
3          1          0          0          56667
0          1          0          0          56667
1          2559       0          0          56667
2          19574      0          0          56667
3          1          0          0          56667
0          0          0          0          56667
1          2559       0          0          56667
2          19574      0          0          56667
3          1          0          0          56667
15         0          0          0          56667
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
--//不知道它的具體算法.視乎每個array前面4個都是建立pid.
--//貼一個processes=1000的情況,asm實(shí)例的processes=1320的情況
# grep "^kernel.s[eh]" /etc/sysctl.conf
kernel.shmmax = 61847529062
kernel.shmall = 15099494
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128

$ ipcs -s
------ Semaphore Arrays --------
key        semid      owner      perms      nsems
0x869d3e0c 163842     grid       640        165
0x869d3e0d 196611     grid       640        165
0x869d3e0e 229380     grid       640        165
0x869d3e0f 262149     grid       640        165
0x869d3e10 294918     grid       640        165
0x869d3e11 327687     grid       640        165
0x869d3e12 360456     grid       640        165
0x869d3e13 393225     grid       640        165
0x869d3e14 425994     grid       640        165
0x42dc1a48 2392075    oracle     640        250
0x42dc1a49 2424844    oracle     640        250
0x42dc1a4a 2457613    oracle     640        250
0x42dc1a4b 2490382    oracle     640        250
0x42dc1a4c 2523151    oracle     640        250
0x42dc1a4d 2555920    oracle     640        250
0x42dc1a4e 2588689    oracle     640        250
0x42dc1a4f 2621458    oracle     640        250
0x42dc1a50 2654227    oracle     640        250

$ ipcs -s -u
------ Semaphore Status --------
used arrays = 20
allocated semaphores = 3737
--//也不知道多個Semaphore Array對性能有什么影響,視乎從來沒有人提到這樣對性能存在問題.我看了exadata的設(shè)置:
exadata#  grep "^kernel.s[he]" /etc/sysctl.conf
kernel.shmmax = 229982982348
kernel.shmall = 56148189
kernel.shmmni = 4096
kernel.sem = 1024 60000 1024 256
--//我個人感覺也許應(yīng)該根據(jù)processes的數(shù)量適當(dāng)調(diào)整,不要建立太多的Semaphore Array.

3.測試2:
--//最后測試kernel.sem的第4個參數(shù)SEMMNI.
kernel.sem = SEMMSL SEMMNS SEMOPM SEMMNI
semmni:  The maximum number of shared memory segments available in the system 系統(tǒng)中可用的最大共享內(nèi)存段數(shù)
--//(我覺得這里是指信號量)。

# grep "^kernel.s[he]" /etc/sysctl.conf
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
kernel.shmmni = 4096
kernel.sem = 100 332800 100 4

# sysctl -p

SYS@book> startup
ORA-27154: post/wait create failed
ORA-27300: OS system dependent operation:semget failed with status: 28
ORA-27301: OS failure message: No space left on device
ORA-27302: failure occurred at: sskgpcreates
--//無法啟動數(shù)據(jù)庫.

# grep "^kernel.s[he]" /etc/sysctl.conf
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
kernel.shmmni = 4096
kernel.sem = 100 332800 100 5

SYS@book> startup
ORACLE instance started.
Total System Global Area  643084288 bytes
Fixed Size                  2255872 bytes
Variable Size             205521920 bytes
Database Buffers          427819008 bytes
Redo Buffers                7487488 bytes
Database mounted.
Database opened.

$ ipcs -a
------ Shared Memory Segments --------
key        shmid      owner      perms      bytes      nattch     status
0x00000000 407404545  oracle    640        12582912   25
0x00000000 407437314  oracle    640        633339904  25
0xe8a8ec10 407470083  oracle    640        2097152    25

------ Semaphore Arrays --------
key        semid      owner      perms      nsems
0x6aa88594 328925184  oracle    640        51
0x6aa88595 328957953  oracle    640        51
0x6aa88596 328990722  oracle    640        51
0x6aa88597 329023491  oracle    640        51
0x6aa88598 329056260  oracle    640        51

------ Message Queues --------
key        msqid      owner      perms      used-bytes   messages

4.還原測試環(huán)境略.
# grep "^kernel.s[he]" /etc/sysctl.conf
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
kernel.shmmni = 4096
kernel.sem = 2600 332800 2600 128

5.總結(jié):
--//操作系統(tǒng)的許多東西自己還是存在許多不理解的情況,許多東西純粹自己在亂猜.畢竟不是自己的專業(yè),需要慢慢積累學(xué)習(xí)提高.

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多