ablog

不器用で落着きのない技術者のメモ

メモリ使用率を意図的に上げようと思ってごちゃごちゃしたときのメモ

ちょっとごちゃごちゃしてみたのをメモっておく。

$ cd $ORACLE_HOME/dbs
$ cat <<EOF > initorcl1.ora
DB_NAME=orcl1
PRE_PAGE_SGA=true
SGA_MAX_SIZE=100M
SGA_TARGET=100M
EOF
$ for i in {2..3}
do
cp initorcl1.ora initorcl${i}.ora
echo perl -i -ple '$ARGV=~s/[a-z]+([0-9])\.ora$/$1/; s/orcl1/orcl$ARGV/' initorcl${i}.ora
done
$ free
             total       used       free     shared    buffers     cached
Mem:       1035244     200204     835040          0      31916     102744
-/+ buffers/cache:      65544     969700
Swap:      2097144          0    2097144
$ for i in {1..3}
do
export ORACLE_SID=orcl${i}
echo startup nomount |sqlplus / as sysdba
done
$ free
             total       used       free     shared    buffers     cached
Mem:       1035244     559556     475688          0      32080     410076
-/+ buffers/cache:     117400     917844
Swap:      2097144          0    2097144
$ ipcs -a
------ Shared Memory Segments --------
key        shmid      owner      perms      bytes      nattch     status      
0x8a1aec3c 229376     oracle    640        109051904  10                      
0xe302c6e0 262145     oracle    640        109051904  10                      
0x31331198 294914     oracle    640        109051904  10                      

------ Semaphore Arrays --------
key        semid      owner      perms      nsems     
0x61c40f80 1015808    oracle    640        44        
0x6b6fb864 1146881    oracle    640        44        
0x5818669c 1277954    oracle    640        44        

------ Message Queues --------
key        msqid      owner      perms      used-bytes   messages    
  • 自分のつぶやき

しかし、勉強になるなぁ。ブログかこ。

posted at 15:13:19

そもそも /dev/shm が何なのかよくわかってない。ファイルシステムに見えて実態はメモリに書いてる的なものっぽい。

posted at 15:12:35

おぉ、ついていけなくなってきたw とりあえずブログにメモっておこRT @sh2nd: SGA_TARGETにして、syncして、echo 3 > /proc/sys/vm/drop_caches して、そこまでやってfree -mしてMem:の行にでたfreeがたぶんfree

posted at 15:10:12

@sh2nd めちゃめちゃ勉強になりました!ありがとうございます!

posted at 15:00:08

おお〜 RT @sh2nd: あとOracle11gのMEMORY_TARGETつかうと、SGAが/dev/shm配下にファイルとして確保されるようになって、なんとこれがfreeを見ようが/proc/meminfo見ようがどれだけ使ってるのか分からないとかいう恐ろしい話

posted at 14:59:25

なるほどぉ〜 RT @sh2nd: あーなのでつまりfreeコマンドの出力を空きメモリとして考えるのはOracleサーバでは危険です

posted at 14:58:39

ほ〜、知りませんでした! RT @sh2nd: @yoheia OracleのSGA(IPC共有メモリ)は、freeコマンドでは実はbuffer/cacheの項目に含まれます

posted at 14:55:06

... oracle 640 109051904 10
... oracle 640 109051904 10
... oracle 640 109051904 10

posted at 14:46:09

$ ipcs -a

posted at 14:45:42

$ free -m
-/+ buffers/cache: 114 896

posted at 14:44:50

for i in {1..3}
do
export ORACLE_SID=orcl${i}
echo startup nomount |sqlplus / as sysdba
done

posted at 14:44:18

...

posted at 14:44:06

$ cat <<EOF > initorcl1.ora
DB_NAME=orcl1
PRE_PAGE_SGA=true
SGA_MAX_SIZE=100M
SGA_TARGET=100M
EOF

posted at 14:43:45

PRE_PAGE_SGA にしても、実際にブロックを読み込むなどするまでは、メモリはつかわれないのかな?

posted at 14:43:30

@yoyo1457 なるほど。PRE_PAGE_SGA=true にして、SGA_TARGET を大きくすれば良いということですね。ありがとうございます。

posted at 14:26:00

ほ〜、ありがとうございます。ちょっと試してみます。RT @sh2nd: @yoheia pre_page_sgaを設定してOracleインスタンスをがんがん上げましょう!w

posted at 14:04:01

メモリ使用率をがんがん増やす方法を誰か教えてほしいです。Linux です。メモリ使用率監視のテストのため。

posted at 13:55:39

  • id:sh2 さんのつぶやき

SGA_TARGETにして、syncして、echo 3 > /proc/sys/vm/drop_caches して、そこまでやってfree -mしてMem:の行にでたfreeがたぶんfree

posted at 15:03:32

わからないっていうか df -h /dev/shmすればわかりますよそりゃ

posted at 15:01:56

あとOracle11gのMEMORY_TARGETつかうと、SGAが/dev/shm配下にファイルとして確保されるようになって、なんとこれがfreeを見ようが/proc/meminfo見ようがどれだけ使ってるのか分からないとかいう恐ろしい話

posted at 14:52:10

あーなのでつまりfreeコマンドの出力を空きメモリとして考えるのはOracleサーバでは危険です

posted at 14:49:42

@yoheia OracleのSGA(IPC共有メモリ)は、freeコマンドでは実はbuffer/cacheの項目に含まれます

posted at 14:48:39

@yoheia pre_page_sgaを設定してOracleインスタンスをがんがん上げましょう!w

posted at 13:58:14

  • yoyo1457 さんのつぶやき

oracleのパラメータで。RT @yoheia メモリ使用率をがんがん増やす方法を誰か教えてほしいです。Linux です。メモリ使用率監視のテストのため。

posted at 14:22:21

後半、id:sh2 さんについていけなかったので、後で復習しなきゃ。