Performanceの最近のブログ記事

mod_expire

| | コメント(0) | トラックバック(0)

リッチサイトはCSSやらJSやら多くのファイルをロードするために,リクエスト回数も増えサーバーも重くなります。
変更が少ないファイルについてはExpiresヘッダを追加することで,ユーザにキャッシュさせリクエスト回数
を減らすことができます。
Apache側でExpiresヘッダをレスポンスに追加することで,このファイルは,~日間までは再リクエストしなくても変更が無いという設定をmod_expiresですることが出来ます。

基本的には静的なファイルや更新されることがほとんど無いファイルはmod_expireにて設定した方が
良い場合が多いです。(gif/jpg, js, css)

mod_expireはApacheのディフォルトモジュールです。

 

①find . / -name mod_expires.c で.cを探す。

②/home/admin/httpd-2.2.4/modules/metadata/mod_expires.cに発見した.cより.soを作成する。

③cd /home/admin/httpd-2.2.4/modules/metadata/

④/usr/local/apache2/bin/apxs -c mod_expires.c

⑤ls -l mod_expires* 

- -rw-r--r--  1 admin admin 18117  7月 12  2006 mod_expires.c
- -rw-r--r--  1 admin admin  3971  8月  6  2006 mod_expires.dsp
- -rw-r--r--  1 admin admin    15 11月 22  2004 mod_expires.exp
- -rw-r--r--  1 root     root       822  8月 31 06:15 mod_expires.la
- -rw-r--r--  1 root     root       324  8月 31 06:15 mod_expires.lo
- -rw-r--r--  1 root     root     29116  8月 31 06:15 mod_expires.o
- -rw-r--r--  1 root     root         0  8月 31 06:15 mod_expires.slo


⑥mod_expire.soファイルの作成

/usr/local/apache2/bin/apxs -i -a -n expires mod_expires.la

⑦/usr/local/apache2/modules/mod_expires.so が作成されたか確認。

 

⑧/usr/local/apache2/conf/httpd.conf にモジュールロードが追加されているか確認。
 LoadModule expires_module     modules/mod_expires.so

 

⑨画像ファイル等のキャッシュを設定
mod_expiresでgif、jpeg等をキャッシュ

<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/gif "access plus 1 days"
ExpiresByType image/jpeg "access plus 1 days"
ExpiresByType text/css "access plus 1 days"
ExpiresByType application/x-javascript "access plus 1 days"
</IfModule>

 

⑩再起動して設定を反映

 /usr/local/apache2/bin/apachectl restart

[root@localhost ~]# top
top - 00:28:23 up  1:13,  1 user,  load average: 0.06, 0.02, 0.00
Tasks:  89 total,   1 running,  88 sleeping,   0 stopped,   0 zombie
Cpu(s):  1.2% us,  0.6% sy,  0.0% ni, 97.1% id,  0.9% wa,  0.1% hi,  0.1% si,  0.0% st
Mem:    320840k total,   181928k used,   138912k free,    11928k buffers
Swap:   655352k total,        0k used,   655352k free,    84184k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 2945 root      15   0  2120  896  704 R  1.9  0.3   0:00.03 top
    1 root      15   0  2008  676  588 S  0.0  0.2   0:01.46 init
    2 root      34  19     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/0
    3 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 watchdog/0
    4 root      10  -5     0    0    0 S  0.0  0.0   0:00.00 events/0
    5 root      10  -5     0    0    0 S  0.0  0.0   0:00.02 khelper
    6 root      11  -5     0    0    0 S  0.0  0.0   0:00.00 kthread
   55 root      10  -5     0    0    0 S  0.0  0.0   0:00.00 kblockd/0
   56 root      20  -5     0    0    0 S  0.0  0.0   0:00.00 kacpid
  111 root      20  -5     0    0    0 S  0.0  0.0   0:00.00 cqueue/0
  112 root      20  -5     0    0    0 S  0.0  0.0   0:00.00 ksuspend_usbd
  115 root      11  -5     0    0    0 S  0.0  0.0   0:00.00 khubd
  117 root      10  -5     0    0    0 S  0.0  0.0   0:00.01 kseriod
  136 root      20   0     0    0    0 S  0.0  0.0   0:00.00 pdflush
  137 root      15   0     0    0    0 S  0.0  0.0   0:00.01 pdflush
  138 root      15  -5     0    0    0 S  0.0  0.0   0:00.00 kswapd0
  139 root      15  -5     0    0    0 S  0.0  0.0   0:00.00 aio/0
  304 root      11  -5     0    0    0 S  0.0  0.0   0:00.00 kpsmoused
  326 root      12  -5     0    0    0 S  0.0  0.0   0:00.00 scsi_eh_0
  359 root      11  -5     0    0    0 S  0.0  0.0   0:00.00 kmirrord
  366 root      11  -5     0    0    0 S  0.0  0.0   0:00.00 ksnapd
  373 root      10  -5     0    0    0 S  0.0  0.0   0:00.19 kjournald
  416 root      11  -5     0    0    0 S  0.0  0.0   0:00.00 kauditd
  441 root      17  -4  2856 1388  388 S  0.0  0.4   0:01.00 udevd
  606 root      11  -5     0    0    0 S  0.0  0.0   0:00.00 ata/0
  607 root      11  -5     0    0    0 S  0.0  0.0   0:00.00 ata_aux
  627 root      11  -5     0    0    0 S  0.0  0.0   0:00.00 kgameportd
  628 root      11  -5     0    0    0 S  0.0  0.0   0:00.00 ac97/0
 1304 root      11  -5     0    0    0 S  0.0  0.0   0:00.00 kjournald
 1648 root      21   0  2232  480  188 S  0.0  0.1   0:00.00 dhclient
 1702 root      18   0  1656  564  476 S  0.0  0.2   0:00.08 syslogd
 1706 root      16   0  1600  420  348 S  0.0  0.1   0:00.02 klogd
 1725 rpc       15   0  1736  544  448 S  0.0  0.2   0:00.00 portmap
 1744 rpcuser   18   0  1744  704  616 S  0.0  0.2   0:00.04 rpc.statd
 1773 root      15   0  4740  600  320 S  0.0  0.2   0:00.00 rpc.idmapd
 1787 dbus      15   0 13240 1072  868 S  0.0  0.3   0:00.05 dbus-daemon
 1797 root      18   0  2272  892  804 S  0.0  0.3   0:00.00 hcid
 1808 root      21   0  1664  492  428 S  0.0  0.2   0:00.00 sdpd
 1817 root       9 -10     0    0    0 S  0.0  0.0   0:00.00 krfcommd
 1853 root      15   0  1820  480  404 S  0.0  0.1   0:00.00 hidd
 1937 root      18   0  1876  720  600 S  0.0  0.2   0:00.00 automount
 1951 root      16   0  1912  512  296 S  0.0  0.2   0:00.00 smartd
 1960 root      18   0  1600  452  380 S  0.0  0.1   0:00.00 acpid
 1969 root      22   0  5000 1048  816 S  0.0  0.3   0:00.00 hpiod
 1974 root      15   0 13704 4812 1160 S  0.0  1.5   0:00.05 python

[root@localhost ~]# pstree
init─┬─acpid
     ├─anacron───run-parts─┬─000-delay.cron───sleep
     │                     └─awk
     ├─atd
     ├─automount
     ├─avahi-daemon───avahi-daemon
     ├─crond
     ├─cups-config-dae
     ├─cupsd
     ├─dbus-daemon───{dbus-daemon}
     ├─dhclient
     ├─events/0
     ├─gpm
     ├─hald───hald-runner─┬─hald-addon-acpi
     │                    ├─hald-addon-keyb
     │                    └─hald-addon-stor
     ├─hcid
     ├─hidd
     ├─hpiod
     ├─httpd───5*[httpd]
     ├─khelper
     ├─klogd
     ├─krfcommd
     ├─ksoftirqd/0
     ├─kthread─┬─ac97/0
     │         ├─aio/0
     │         ├─ata/0
     │         ├─ata_aux
     │         ├─cqueue/0
     │         ├─kacpid
     │         ├─kauditd
     │         ├─kblockd/0
     │         ├─kgameportd
     │         ├─khubd
     │         ├─2*[kjournald]
     │         ├─kmirrord
     │         ├─kpsmoused
     │         ├─kseriod
     │         ├─ksnapd
     │         ├─ksuspend_usbd
     │         ├─kswapd0
     │         ├─2*[pdflush]
     │         └─scsi_eh_0
     ├─6*[mingetty]
     ├─mysqld_safe───mysqld───9*[{mysqld}]
     ├─portmap
     ├─prefdm───gdm-binary───gdm-binary─┬─Xorg
     │                                  └─gdmgreeter
     ├─python
     ├─rpc.idmapd
     ├─rpc.statd
     ├─sdpd
     ├─2*[sendmail]
     ├─smartd
     ├─sshd───sshd───sshd───bash───bash───pstree
     ├─syslogd
     ├─udevd
     ├─watchdog/0
     └─xfs
[root@localhost ~]# ps
  PID TTY          TIME CMD
 2594 pts/1    00:00:00 bash
 2953 pts/1    00:00:00 ps
[root@localhost ~]#

PSコマンドメモ

ps auxw

[root@localhost ~]# ps aufxw
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.2   2004   676 ?        Ss   21:57   0:01 init [5]
root         2  0.0  0.0      0     0 ?        SN   21:57   0:00 [ksoftirqd/0]
root         3  0.0  0.0      0     0 ?        S    21:57   0:00 [watchdog/0]
root         4  0.0  0.0      0     0 ?        S<   21:57   0:00 [events/0]
root         5  0.0  0.0      0     0 ?        S<   21:57   0:00 [khelper]
root         6  0.0  0.0      0     0 ?        S<   21:57   0:00 [kthread]
root        55  0.0  0.0      0     0 ?        S<   21:57   0:00  \_ [kblockd/0]
root        56  0.0  0.0      0     0 ?        S<   21:57   0:00  \_ [kacpid]
root       111  0.0  0.0      0     0 ?        S<   21:57   0:00  \_ [cqueue/0]

プロセスの詳細は,以下のようにも見る事も出来ます。

ps auxwww -L

ps auxwww -L | sort -k 3

ps auxwww -L | sort -k 3 -r

ps_auxwww.jpg
ps_auxwww-sort.jpg
ps_auxwww-sort-r.jpg

 

shmmax

| | コメント(0) | トラックバック(0)

チューニングパラメータは/proc/sys配下に集まっています。

/proc/sys /kernel
        /fs
        /vm
        /net

shmall、shmmni、shmmax
共有メモリ(シェアードメモリ)のパラメータです。shmallはシステム全体の共有メモリの大きさ、
shmmaxは1プロセスごとの大きさ、shmmniは1プロセスごとの共有メモリセグメント(領域)の数の上限を規定します。
共有メモリを利用する構造になっているアプリケーション(データベースなど)によっては、
この値を大きく取っておかないとうまく動作しないものもあります。

[root@localhost etc]# cp /etc/sysctl.conf /etc/sysctl.conf.20070907
[root@localhost etc]# cat /proc/sys/kernel/shmmax
33554432
[root@localhost etc]# vi /etc/sysctl.conf
[root@localhost etc]# /sbin/sysctl -p
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
kernel.shmmax = 536870912
[root@localhost etc]# cat /proc/sys/kernel/shmmax
536870912
[root@localhost etc]#

 

=その他設定ファイル=

[root@localhost ~]# ls -l /proc/sys/kernel/hostname
-rw-r--r-- 1 root root 0  9月  8 01:19 /proc/sys/kernel/hostname
[root@localhost ~]# cat /proc/sys/kernel/hostname
localhost.localdomain
[root@localhost ~]# cat /proc/sys/kernel/domainname
(none)
[root@localhost ~]# cat /proc/sys/kernel/panic
0
[root@localhost ~]# cat /proc/sys/kernel/osrelease
2.6.20-1.2312.fc5
[root@localhost ~]# cat /proc/sys/kernel/ostype
Linux
[root@localhost ~]# cat /proc/sys/kernel/version
#1 Tue Apr 10 15:09:44 EDT 2007
[root@localhost ~]# cat /proc/sys/kernel/printk
6       4       1       7
[root@localhost ~]# cat /proc/sys/kernel/modprobe
/sbin/modprobe
[root@localhost ~]# cat /proc/sys/kernel/hotplug

[root@localhost ~]# cat /proc/sys/kernel/threads-max
10238
[root@localhost ~]# 

 

shemmax.jpg
 

 

 

このアーカイブについて

このページには、過去に書かれたブログ記事のうちPerformanceカテゴリに属しているものが含まれています。

前のカテゴリはLinuxです。

次のカテゴリはPHPです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Performance: 月別アーカイブ

Powered by Movable Type 4.0