ablog

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

Solaris

Solaris で プロセスの環境変数を確認する方法

Linux の /proc/[pid]/environ 相当 $ pargs -e <pid> 参考 システムプロセスを管理するコマンド - Solaris のシステム管理 (上級編)</pid>

echo ::kmastat|mdb -k の buf size、memory in use の単位は byte

echo ::kmastat|mdb -k の buf size、memory in use の単位を調べていたら、名著"Solaris Internals: Solaris 10 and OpenSolaris Kernel Architecture (2nd Edition)" に byte だと書かれていた。Solaris Internals: Solaris 10 and OpenSolaris Kernel Arc…

Solaris の空きメモリの見方について

Solaris の sar -r や vmstat ってダーティーじゃないページキャッシュを空きとして表示してくれているのかな? ダーティーじゃなくなったページは Page cache から Free (cachelist) に回されると思うけど、都度やっているか、一括でやってるかで話が変わる…

Solaris で Oracle RAC を使う場合ののUDPバッファサイズについて

Solaris 10、Oracle Database と Oracle Grid Infrastructure は11.2.0 という前提。 Oracle Grid Infrastructureインストレーション・ガイド 11gリリース2 (11.2) for Oracle Solaris B57234-05 3.2.2 UDPパラメータ設定の確認 3.2.2 UDPパラメータ設定の確…

Solaris で SJIS のファイルを見たいときは環境変数 LANG に ja_JP.PCK を設定する

Solaris で SJIS のファイルを見たいときは環境変数 LANG に ja_JP.PCK を設定する $ export LANG=ja_JP.PCK vi は LANG ではなく LC_ALL を設定してやるとよい。 $ export LC_ALL=ja_JP.PCK プログラムによって見てる環境変数が違うと思われる。 $ truss -l…

Solaris の ps コマンドで表示されるプロセス状態の"O"は何の略か

ps コマンドで表示されるプロセスの状態の"O"は何の略かって聞かれたので調べてみた。 -bash-3.00$ cat /etc/release Solaris 10 11/06 s10s_u3wos_10 SPARC Copyright 2006 Sun Microsystems, Inc. All Rights Reserved. Use is subject to license terms. …

Solaris で stat コマンドの代わりに使う Perl ワンライナー

perl -e '@stats=stat($ARGV[0]);map{($s,$m,$h,$d,$mon,$y)=localtime($_);printf(qq/%04d-%02d-%02d %02d:%02d:%02d\n/,$y+1900,$mon+1,$d,$h,$m,$s)} @stats[8,9,10]' README.TXT 参考 指定した日に更新されたファイルを探す - 合理的な混沌

Solaris で実行中のプロセスの USR や SYS などCPU使用率の内訳を調べる

prstat -av -p 16314 「16314」はプロセスIDです。 参考 http://members3.jcom.home.ne.jp/katsumi.nuruki/service/learning/actperf/cpu.htm#CPU3 http://docs.oracle.com/cd/E19253-01/819-1211/6n3j834a2/index.html

tcp_conn_req_max_q0 と tcp_conn_req_max_q と QUEUESIZE

接続要求を受信すると、TCP はまず、受け付けられるのを待っている保留状態の TCP 接続 (3 段階ハンドシェークが終わっている) の数 (N) が、そのリスナーに対する最大数を超えていないかをチェックします。接続数が超えていると、その要求は拒否されます。…

nsswitch.conf と ipnodes と getaddrinfo()

IPv4 アドレスと IPv6 アドレスでこれらの ipnodes データベースを生成してから、複数のネームサービスで ipnodes を探すように /etc/nsswitch.conf ファイルを変更してください。ホストアドレスの解決時に不要な遅延が発生してしまうからです (起動タイミン…

Solaris 10 でトレースをとるコマンドいろいろ

メモ。 turss http://download.oracle.com/docs/cd/E19253-01/819-1210/truss-1/index.html truss -u libsocket ping localhost truss -t !all -u libsocket ping localhost sotruss http://download.oracle.com/docs/cd/E19253-01/816-5165/6mbb0m9s2/index…

/usr/openwin/lib ってなんだ?

/usr/openwin/lib は Open Windows のライブラリが格納されるディレクトリ。 Open Windows はOPEN LOOKライクなウインドウマネージャの一つ。 Xウインドウでは「Look and Feel」については定義せず、ウインドウマネージャで定義している。 ウインドウマネー…

Solaris でハードウェア構成を確認する

prtdiag コマンドを使うと、Solaris で CPU数やメモリサイズなどのハードウェア構成を確認することができる。 bash-3.00# prtdiag System Configuration: Sun Microsystems sun4u SUNW,Sun-Blade-1000 (2 X UltraSPARC-III+) System clock frequency: 145 MH…

Solaris 10 でスワップ領域のサイズを確認する方法

# swap -s total: 57416k bytes allocated + 10480k reserved = 67896k used, 833128k available used 値と available 値の合計は、システム上の合計スワップ空間に等しくなります。これには、物理メモリーの一部とスワップデバイス (またはファイル) が含ま…

カレント・ディレクトリ配下のファイルをアーカイブ・圧縮する

Solaris 10 でカレント・ディレクトリ配下の通常ファイルをアーカイブ・圧縮したときに使ったコマンド。 -bash-3.00$ ls -l|perl -lane '/^\-/ and print $F[8]'|xargs tar cfv -|gzip -c > foo.tar.gz Solaris 10 の find には --max-dpth オプションがなか…

Solaris 10 でファイルシステムのページキャッシュに使用されているメモリサイズを調べる方法

bash-3.00# echo "::memstat" | mdb -k Page Summary Pages MB %Tot ------------ ---------------- ---------------- ---- Kernel 147182 1149 14% Anon 25308 197 2% Exec and libs 3291 25 0% Page cache 4434 34 0% Free (cachelist) 142618 1114 14% Fr…

DTrace を使って最もCPU時間を消費した関数を調べてみる

Solaris 10 で DTrace を使って pwd コマンドを実行して最もCPU時間を消費した関数を調べてみた。 bash-3.00# dtrace -qn ' pid$target:::entry { self->ts[probefunc] = timestamp; } pid$target:::return { @time[probefunc] = sum(timestamp - self->ts[p…

Solaris 10 SPARC 64 で rlwrap を使ってみた

ダウンロードする 以下のパッケージをダウンロードする。 readline package for Solaris (9, 10) SPARC http://ivan.kartik.sk/oracle/download_from.php?site_id=10 rlwrap package for Solaris (9, 10) SPARC http://ivan.kartik.sk/oracle/download_from.…

Solaris 10 で ELF オブジェクト内のシンボル名を表示する。

Solaris 10 で ELF オブジェクト内のシンボル名を表示する。 bash-3.00# /usr/ccs/bin/nm -D /usr/bin/ls /usr/bin/ls: [Index] Value Size Type Bind Other Shndx Name [45] | 156424| 0|OBJT |GLOB |0 |16 |_DYNAMIC [43] | 155648| 0|OBJT |GLOB |0 |14 |…

共有ライブラリ内の関数をインターポジショニングしてみる

ls から呼んでいる共有ライブラリ内の関数を調べる。 -bash-3.00$ sotruss ls ls -> libc.so.1:*atexit(0xff3c5bb4, 0x26000, 0x0) ls -> libc.so.1:*atexit(0x14648, 0xff1d0140, 0xee12c) ls -> libc.so.1:*setlocale(0x6, 0x14658, 0xff0b5900) ls -> lib…

Solaris 10 (SPARC) に wget をインストールする

パッケージをダウンロードする ブラウザで Introduction にアクセスする。 Webページ右側にある「Everything New or Old 」というリンクをクリックする。 「/pub/freeware/sparc/10/」に移動し、以下のパッケージをダウンロードする。 wget-1.11.4-sol10-spa…

Solaris 10 でパッケージをアンインストールする方法

bash-3.00# pkgrm -n SMCwget Removal of <SMCwget> was successful. 参考 CodeZine(コードジン)</smcwget>

Solaris 10 に SUN Studio 12.1 をインストールする

ダウンロードする http://www.oracle.com/technetwork/server-storage/solarisstudio/downloads/studio12-update1-136165.html で Download Tarfile Installer (Multi-Language) をクリックする。 Sun Studio 12 Update 1 Package Installer で以下の通り入…

.bash_profile に LD_PRELOAD を設定すると su を実行時に「ld.so.1: su: warning: .... : open failed: illegal insecure pathname」エラーが発生する

現象 -bash-3.00$ id uid=501(oracle) gid=501(oinstall) -bash-3.00$ cp -pi /usr/lib/32/libc.so /home/oracle/ -bash-3.00$ vi /home/oracle/.bash_profile export LD_PRELOAD_32=/home/oracle/libc.so -bash-3.00$ source .bash_profile -bash-3.00$ su …

Solaris 10 で /etc/resolv.conf を設定しているのにDNSで名前解決できない

現象 Solaris 10 で /etc/resolv.conf を設定しているのに DNS によるホスト名の名前解決ができない。 原因 ホスト名の名前解決に DNS を使用する設定になっていないため。 bash-3.00# cat /etc/nsswitch.conf ... hosts: files ... 対処 bash-3.00# vi /etc…

Solaris 10 に Oracle Database 11gR2 (11.2.0.2.0) をインストール中に "java.io.IOException: Thers is an error in creating the following process" エラーが発生

現象 Solaris 10 に Oracle Database 11gR2 (11.2.0.2.0) をインストール中に "java.io.IOException: Thers is an error in creating the following process" エラーが発生する。 対処 スペースは足りているので、念のためスワップ領域を拡張してやり直した…

Solaris 10 に Oracle Database 11gR2 (11.2.0.2.0) をインストール中に「mmap anon failed: Resource temporarily unavailable」エラーが発生する

現象 Solaris 10 に Oracle Database 11gR2 (11.2.0.2.0) をインストール中に「mmap anon failed: Resource temporarily unavailable」エラーが発生する。 $ less /u01/app/oraInventory/logs/installActions2011-01-26_01-49-43AM.log ... INFO: ld: fatal:…

Solaris 10 にリモートホストから ssh でログインしようとすると認証にえらい時間がかかる

現象 Solaris 10 でリモートホストから ssh でログインしようとすると認証にえらい時間がかかる。 原因 sshd がリモートクライアントのIPアドレスからホスト名を逆引きしようとするがDNSサーバへアクセスできずTCPのタイムアウトを待つため。 対処 sshd_conf…

Solaris 10 に Oracle Database 11gR2 をインストール中に「"tcp_smallest_anon_port " does not have proper value」エラーが発生する

現象 Solaris 10 に Oracle Database 11gR2 をインストール中に「"tcp_smallest_anon_port " does not have proper value」エラーが発生する。 原因 tcp_smallest_anon_port が要件を満たしていないため、Oracle Universal Installer に怒られている。 対処 …

Solaris 10 に Oracle Database 11gR2 をインストール中に "Hard Limit: maximum user processes" エラーが発生する

現象 Solaris 10 に Oracle Database 11gR2 (11.2.0.2.0) をインストール中に Perform Prerequisite Checks で"Hard Limit: maximum user processes" エラーが発生する。 原因 oracle ユーザが生成できる最大プロセス数が要件より少ないため Oracle Universa…