メモ/メモ



非公式sorucelist

  • PPA handbrake wine
    sudo add-apt-repository ppa:handbrake-ubuntu/ppa
  • handbrake(ソフトウェアソースにこれを加える)
    deb http://ppa.launchpad.net/stebbins/handbrake-snapshots/ubuntu lucid main 
    deb-src http://ppa.launchpad.net/stebbins/handbrake-snapshots/ubuntu lucid main 
ubuntu 13.04(64bit)
http://www.ubuntuupdates.org/ppa/handbrake_snapshots
wget wget https://launchpad.net/~stebbins/+archive/handbrake-releases/+files/handbrake-gtk_0.9.8%2Bppa1~quantal1_amd64.deb
wget wget https://launchpad.net/~stebbins/+archive/handbrake-releases/+files/handbrake-cli_0.9.8%2Bppa1~quantal1_amd64.deb
  • またはこっち
    sudo add-apt-repository ppa:ubuntu-wine/ppa
  • medibuntu
    sudo wget --output-document=/etc/apt/sources.list.d/medibuntu.list http://www.medibuntu.org/sources.list.d/$(lsb_release -cs).list && sudo apt-get --quiet update && sudo apt-get --yes --quiet --allow-unauthenticated install medibuntu-keyring 
  • Opera
    echo "deb http://deb.opera.com/opera/ stable non-free" | sudo tee /etc/apt/sources.list.d/opera.list && wget -O - http://deb.opera.com/archive.key | sudo apt-key add - && sudo apt-get install debian-archive-keyring
  • install
    sudo apt-get --quiet update
    sudo apt-get install handbrake-cli handbrake-gtk
  • tips
    https://help.ubuntu.com/community/OperaBrowser

既存のシステムと全く同じパッケージ構成にしたい

既存のシステムと全く同じパッケージ構成を再現したいときには、既存のマシンから、

$ dpkg --get-selections > list

でパッケージ構成を取得、/var/lib/apt/extended_states と共に新規マシンにコピーし、

# dpkg --set-selections < list
# apt-get dselect-upgrade

とすれば、パッケージリストファイルの内容にしたがってパッケージがインストールされます。

USBバスの中身を監視

http://pylone.jp/blog/tips_usbmon

が参考になる。

mysqlのビルド

./configure --prefix=/usr/local/mysql --enable-assembler \
--with-mysqld-ldflags=-all-static \
--with-plugins=partition,ftexample,innobase,innodb_plugin,myisam \
--with-big-tables --enable-thread-safe-client \
--with-extra-charsets=all --with-charset=utf8 --disable-shared
time make -j12
real	0m56.060s
user	5m48.387s
sys	0m21.639s

あとでまとめる

MySQLチューニングメモ

  ・まずは状況把握    原因の推測のための情報収集    各種ツールの利用    ボトルネックをひとつづつ潰す

  ・パフォーマンス指標    スループット    レスポンスタイム    スケーラビリティ    上記の組み合わせ

  ・スロークエリログの分析    5.1からは0.x秒単位でログ指定が可能    頻繁に記録されるslowログから対応する    mysqldumpslowで統計処理して見極め    クエリアナライザの利用(高機能版mysqldumpslow)     MySQL Enterprise Monitor + MySQL Proxy     Proxyでクエリと統計を収集、Monitorで記録分析表示

  ・EXPLAINで解析    遅いクエリをチェックしていく    EXPLAIN typeでALL、index、index_subqueryが出たら注意    key_lenが大きすぎるとNG    indexを使っていない場合にはつけてみる     (テーブルにindex多すぎるとかえって遅くなるので注意)    INサブクエリは遅いので、JOINで書き直す    EXPLAIN Extraで以下の値が出たら注意     Using temporary:indexを使う     Using filesort:頻発よくない複合indexを検討     Full scan on NULL key:値によってパーテショニング検討     Using join buffer:index使ってないところにつける

  ・show profileで解析    処理の順番を測定し処理毎の時間を出せる    テスト環境など別のタスクのない状況で行う    使い方     mysql> SET profiling=1;     mysql> 解析したいクエリ実行     mysql> SHOW PROFILE;

   履歴表示     mysql> SHOW PROFILES;     mysql> SHOW PROFILE FOR 1; 何番目かの履歴     mysql> SET profiling_history_size=100; 履歴保存数設定

   表示オプション     mysql> SHOW PROFILES ALL; 全表示     CPU CPU使用率     SWAP スワップしたかしないか など

  ・show statusで統計情報表示    show session status 現在セッションの情報表示    show global status サーバ全体の状況    以下のように利用する     mysql> FLASH STATUS;     mysql> SET profiling=1;     mysql> 解析したいクエリ実行     mysql> SHOW PROFILE;     mysql> SHOW SESSION STATUS;     mysql> SHOW GLOBAL STATUS;

   注意すべきパラメータ     Create_tmp*;テンポラリ作成が多いとNG     Handler_*;indexを使わない行アクセスが多いとNG     Key_*:キャッシュミス率が高いときはNG     Qcache_*:クエリキャッシュのヒット率が悪い時は無効に     Select_*;遅いSELECTがわかる、FULL JOINが出ていたら無くす

  ・show innodb statusで分析    CREATE TABLE innodb_monitor(a int) ENGINE INNODB; で有効    再起動すると消える    mysql> SHOW INNODB STATUS\G; とすると見やすい    注意すべきパラメータ     SEMAPHORE:ロック状況がわかる OS waitが多いとNG     LOG:消費量がわかる     BUFFER POOL AND MEMORY:ヒット率でサイズ調整必要   ・クエリを書き換える    検索条件がOR:index MergeがNG時はUNION DISTINCTで解決    適合indexがない:マルチカラムの場合、左から順に指定必須     1,2,3 の時 1,2と1,2,3は有効、1,3と2,3は無効    JOINではLIMIT効かないので注意    INサブクエリはJOINで書き直す

  ・テーブルデフラグ    OPTIMIZE TABLEで解決    連続データはパーテショニングしやすい(ログとか日付で連続する)    パーテショニングしたデータはフラグメントしない、削除が高速

  ・パラメータチューニング    innodb_buffer_pool_size;空きメモリの7割くらい割当する     index以外もキャッシュされる    innodb_log_file_size/innodb_log_file_in_group:INSERTが高速になる     が128M程度でOK    key_buffer_size:空きメモリの3割程度     (MyISAMはindexしかキャッシュしない)    セッションパラメータは256kbで十分      大きくても2Mくらいで(メモリ使いすぎる)      □システム全体でパフォーマンス対策

  ・MySQLのバージョン    5.0以上を利用する 5.0と5.1は8コアまでスケール可能(innoDB)

  ・ハードウェア    64bitマシンを導入する(メモリ空間重要)    ライトキャッシュ付きハードRAID推奨(キャッシュあればRAID5もOK)    IOPSの高い構成を(SSDもあり!)

  ・OS    64bit推奨になる    LinuxではI/Oスケジューラに注意 noop deadline推奨    noopはinnoDBで利用するのに適している    I/Oキューの数値を上げる デフォルト128、10000?

  ・データベースエンジン    innoDBはinsert bufferがあるのでログ等にも向く    MyISAMはHDD性能に依存する 限界性能低い     でもSSDならinnoDBより速くなる    innoはHDDでもSSDでも限界性能があまり変化しない

  ・データベースパーテショニングを利用する    アクセスする全てのインデックスがメモリ上にあれば高速に動作    インデックスを細かくするためパーテショニングを使う(5.1以降必須)    innoDBでもMyISAMでも効果がある

■I/Oスケジューラの変更 CentOS等では標準でcfqが採用されているが、データベース運用等をしている場合にはdeadlineが望ましい。

# echo deadline > /sys/block/hda/queue/scheduler /sys/block/以下は使用しているディスクに合わせて変更

#cat /sys/block/hda/queue/scheduler noop anticipatory [deadline] cfq ←となっていればOK。

■/proc/sys/以下のパラメータ変更 カーネルのパラメータを修正してパフォーマンスを上げる。()内は参考値 マシン環境で最適値は異なるので試行錯誤する必要あり。

同時に開けるファイル数を増やす /proc/sys/fs/file-max(131072)

同時スレッド数を増やす /proc/sys/kernel/threads-max(131072)

ネットワークの送受信可能速度を上げる /proc/sys/net/core/wmem_default(65536) /proc/sys/net/core/wmem_max(1048576) /proc/sys/net/core/rmem_default(65536) /proc/sys/net/core/rmem_max(1048576)

プロセッサが一度に処理するパケット量を増やす /proc/sys/net/core/netdev_max_backlog(4096)

tcpのtime_waitを保持できる上限を上げる /proc/sys/net/ipv4/tcp_max_tw_buckets(131072)

利用可能な内部通信socketを増やす /proc/sys/net/ipv4/ip_local_port_range(16384 65535)

設定を起動時に自動設定するためには以下に記述する /etc/sysctl.conf

64bit環境にphp imagemagick imagic libpng libjpegを入れる

	■pkgで入れた
	ssh gcc zlib autoconf automake libxml2-dev zlib
	■環境
	uname -a 
       Linux 2.6.26-2-amd64 #1 SMP Tue Aug 31 09:11:22 UTC 2010 x86_64 GNU/Linux
	
	cat /proc/cpuinfo  |grep 'model name'
       model name    : Intel(R) Core(TM) i7 CPU       X 980  @ 3.33GHz
       model name    : Intel(R) Core(TM) i7 CPU       X 980  @ 3.33GHz
       model name    : Intel(R) Core(TM) i7 CPU       X 980  @ 3.33GHz
       model name    : Intel(R) Core(TM) i7 CPU       X 980  @ 3.33GHz
       model name    : Intel(R) Core(TM) i7 CPU       X 980  @ 3.33GHz
       model name    : Intel(R) Core(TM) i7 CPU       X 980  @ 3.33GHz
       model name    : Intel(R) Core(TM) i7 CPU       X 980  @ 3.33GHz
       model name    : Intel(R) Core(TM) i7 CPU       X 980  @ 3.33GHz
       model name    : Intel(R) Core(TM) i7 CPU       X 980  @ 3.33GHz
       model name    : Intel(R) Core(TM) i7 CPU       X 980  @ 3.33GHz
       model name    : Intel(R) Core(TM) i7 CPU       X 980  @ 3.33GHz
       model name    : Intel(R) Core(TM) i7 CPU       X 980  @ 3.33GHz
	
	gcc -v
       Using built-in specs.
       Target: x86_64-linux-gnu
       Configured with: ../src/configure -v --with-pkgversion='Debian 4.3.2-1.1' --with-bugurl=file:///usr/share/doc/gcc-4.3/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --with-gxx-include-dir=/usr/include/c++/4.3 --program-suffix=-4.3 --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --enable-mpfr --enable-cld --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
       Thread model: posix
       gcc version 4.3.2
	
	■libjpeg(ver 6b)
	tar zxfv libjpeg6b_6b.orig.tar.gz
	cd libjpeg6b-6b
	./configure --prefix=/usr/local 
	make -j12
	sudo make install
	■libpng 1.2.44
	tar zxfv libpng-1.2.44.tar.gz 
	cd libpng-1.2.44/
	./configure --prefix=/usr/local 
	make -j12
	make install
	■imagemagick 6.6.4-0
	tar zxfv ImageMagick-6.6.4-0.tar.gz
	cd ImageMagick-6.6.4-0/
	./configure --prefix=/usr/local 
	make -j12
	sudo make install
	■php 5.2.14(5.3.3でも問題無かった)
	tar zxfv php-5.2.14.tar.gz
	cd php-5.2.14/
	./configure --prefix=/usr/local  --with-zlib  \
	--with-gd --with-jpeg-dir=/usr --with-png-dir=/usr/local \
	--enable-mbstring 
	ベースphp.iniをコピー
	sudo cp /usr/local/src/php-5.2.14/php.ini-dist /usr/local/lib/php.ini
	■imagick 3.0.0 (peclコマンドは利用していない(クソだからw))
	tar zxfv imagick-3.0.0.tgz 
	cd imagick-3.0.0/
	phpize
	./configure --prefix=/usr/local 
	make -j12
	■php.iniにimagic追記
	sudo vi /usr/local/lib/php.ini
	extension_dir = "/usr/local/lib/php/extensions/no-debug-non-zts-20060613/"
	extension=imagick.so
	■組み込み確認
	php -i | egrep -i 'gd|jpg|gif|png|imagemagick|imagick'
	----------出力結果---------------------------------------------
	Configure Command =>  './configure'  '--prefix=/usr/local' '--with-zlib' '--with-gd' '--with-jpeg-dir=/usr' '--with-png-dir=/usr/local' '--enable-mbstring'
	gd
	GD Support => enabled
	GD Version => bundled (2.0.34 compatible)
	GIF Read Support => enabled
	GIF Create Support => enabled
	JPG Support => enabled
	PNG Support => enabled
	imagick
	imagick module => enabled
	imagick module version => 3.0.0
	imagick classes => Imagick, ImagickDraw, ImagickPixel, ImagickPixelIterator
	ImageMagick version => ImageMagick 6.6.4-0 2010-09-08 Q16 http://www.imagemagick.org
	ImageMagick copyright => Copyright (C) 1999-2010 ImageMagick Studio LLC
	ImageMagick release date => 2010-09-08
	ImageMagick number of supported formats:  => 176
	ImageMagick supported formats => 3FR, A, AI, ART, ARW, AVI, AVS, B, BMP, BMP2, BMP3, C, CAL, CALS, CAPTION, CIN, CIP, CLIP, CMYK, CMYKA, CR2, CRW, CUR, CUT, DCM, DCR, DCX, DDS, DFONT, DNG, DPX, EPDF, EPI, EPS, EPS2, EPS3, EPSF, EPSI, ERF, FAX, FITS, FRACTAL, FTS, G, G3, GIF, GIF87, GRADIENT, GRAY, HISTOGRAM, HRZ, HTM, HTML, ICB, ICO, ICON, INFO, INLINE, IPL, JNG, JPEG, JPG, K, K25, KDC, LABEL, M, M2V, M4V, MAP, MAT, MATTE, MIFF, MNG, MONO, MOV, MP4, MPC, MPEG, MPG, MRW, MSL, MSVG, MTV, MVG, NEF, NULL, O, ORF, OTB, OTF, PAL, PALM, PAM, PATTERN, PBM, PCD, PCDS, PCL, PCT, PCX, PDB, PDF, PDFA, PEF, PES, PFA, PFB, PFM, PGM, PICON, PICT, PIX, PJPEG, PLASMA, PNG, PNG24, PNG32, PNG8, PNM, PPM, PREVIEW, PS, PS2, PS3, PSB, PSD, PWP, R, RADIAL-GRADIENT, RAF, RAS, RGB, RGBA, RLA, RLE, SCR, SCT, SFW, SGI, SHTML, SR2, SRF, STEGANO, SUN, SVG, SVGZ, TEXT, TGA, THUMBNAIL, TILE, TIM, TTC, TTF, TXT, UIL, UYVY, VDA, VICAR, VID, VIFF, VST, WBMP, WMV, WPG, X3F, XBM, XC, XCF, XPM, XPS, XV, Y, YCbCr, YCbCrA, YUV
	imagick.locale_fix => 0 => 0
	imagick.progress_monitor => 0 => 0
	---------------------------------------------------------------
	■dlconfig -p 結果
	sudo ldconfig -p | egrep -i 'jpeg|png|magick'
	----------出力結果---------------------------------------------
		libpng12.so.0 (libc6,x86-64) => /usr/local/lib/libpng12.so.0
		libpng12.so (libc6,x86-64) => /usr/local/lib/libpng12.so
		libpng.so.3 (libc6,x86-64) => /usr/local/lib/libpng.so.3
		libjpeg.so.62 (libc6,x86-64) => /usr/lib/libjpeg.so.62
		libjpeg.so (libc6,x86-64) => /usr/lib/libjpeg.so
		libMagickWand.so.4 (libc6,x86-64) => /usr/local/lib/libMagickWand.so.4
		libMagickWand.so (libc6,x86-64) => /usr/local/lib/libMagickWand.so
		libMagickCore.so.4 (libc6,x86-64) => /usr/local/lib/libMagickCore.so.4
		libMagickCore.so (libc6,x86-64) => /usr/local/lib/libMagickCore.so
		libMagick++.so.4 (libc6,x86-64) => /usr/local/lib/libMagick++.so.4
		libMagick++.so (libc6,x86-64) => /usr/local/lib/libMagick++.so
	---------------------------------------------------------------
	■php-cliのso状態結果
	$ ldd /usr/local/bin/php
	----------出力結果---------------------------------------------
		linux-vdso.so.1 =>  (0x00007fffcbdff000)
		libcrypt.so.1 => /lib/libcrypt.so.1 (0x00007f9196c4d000)
		librt.so.1 => /lib/librt.so.1 (0x00007f9196a44000)
		libpng12.so.0 => /usr/local/lib/libpng12.so.0 (0x00007f919681d000)
		libz.so.1 => /usr/lib/libz.so.1 (0x00007f9196606000)
		libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0x00007f91963e4000)
		libresolv.so.2 => /lib/libresolv.so.2 (0x00007f91961d0000)
		libm.so.6 => /lib/libm.so.6 (0x00007f9195f4d000)
		libdl.so.2 => /lib/libdl.so.2 (0x00007f9195d49000)
		libnsl.so.1 => /lib/libnsl.so.1 (0x00007f9195b31000)
		libxml2.so.2 => /usr/lib/libxml2.so.2 (0x00007f91957d5000)
		libc.so.6 => /lib/libc.so.6 (0x00007f9195482000)
		libpthread.so.0 => /lib/libpthread.so.0 (0x00007f9195266000)
		/lib64/ld-linux-x86-64.so.2 (0x00007f9196e85000)
	---------------------------------------------------------------

ddでHDDを丸ごとバックアップ

$ sudo dd if=/dev/sda of=/path/to/file.img bs=512 conv=noerror,sync

として、file.imgファイルへ/dev/sdaの内容を全て書き出す。 戻す時は、

$ sudo dd if=/path/to/file.img of=/dev/sda  bs=512 conv=noerror,sync

で書き戻す。

flvを途中から送信

https://github.com/osantana/mod_flvx

インストール後 start=取得したいファイルサイズの開始バイト数 をrequestパラメタにつける. hoge.flv?start=10000 .
http://h264.code-shop.com/trac/wiki/Mod-H264-Streaming-Apache-Version2
こんなのも。。

RTMP

音声編集ライブラリ

android IS03

  • /system/build.prop に以下を足した
    net.tcp.buffersize.wifi=4096,87380,512000,4096,16384,512000
    wifi.supplicant_scan_interval=90
    ro.com.android.dataroaming=false
    dalvik.vm.execution-mode=int:jit
  • 以下を変更
    media.stagefright.enable-player=true
    media.stagefright.enable-meta=true
    media.stagefright.enable-scan=true
  • 便利なコマンド
    setprop KEY VALUE
    getprop

google appinventor を使ってみる.

http://appinventor.googlelabs.com/learn/setup/setuplinux.html 
ここから Appinventor Setup installer Debian package. をダウンロードしインストール。
http://appinventor.googlelabs.com/ に行き適当に作るw

MP4Box gpacを入れる

http://sourceforge.jp/projects/sfnet_gpac/downloads/GPAC/GPAC%200.4.5/gpac-0.4.5.tar.gz/

からソースをDLしビルドする。

ビデオファイルからDVD-Videoに変換(ISO)して焼く

  • まずmpegを生成
    $ ffmpeg -i source.mkv -threads 0 -target ntsc-dvd -acodec ac3 -ar 48000 -vcodec mpeg2video -s 720x480 -aspect 16:9 dvdout.mpg
    $ ffmpeg -i source.mkv -threads 0 -target ntsc-dvd -acodec ac3 -ar 48000 -vcodec mpeg2video -b:v 8000k -s 720x480 -aspect 16:9 dvdout.mpg
  • dvdauthorでDVD-Video形式にはき出す
    $ mkdir zzz
    $ dvdauthor -t -o zzz dvdout.mpg ;dvdauthor -T -o zzz;
  • mkisofsでISOを作る
    $ mkisofs -dvd-video -udf -o dvdvideo.iso zzz/
    以上で完了。

環境の切り替え

sudo update-alternatives --config editor

とか

$ sudo update-alternatives --config java

$ sudo update-alternatives --config javac

とし、

There are 5 choices for the alternative java (providing /usr/bin/java).
Selection    Path                                      優        Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      auto mode
 1            /usr/bin/gij-4.3                           43        manual mode
 2            /usr/bin/gij-4.4                           1044      manual mode
 3            /usr/lib/jvm/java-1.5.0-sun/jre/bin/java   53        manual mode
 4            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      manual mode
 5            /usr/lib/jvm/java-6-sun/jre/bin/java       63         manual mode
 Press enter to keep the current choice[*], or type selection number:

ってかんじで、Javaを切り替える。

マザーボードの情報を見る

$ sudo dmidecode

すると色々でてくる。BIOSバージョン等も。

ISOイメージをUSBに書き込む

$ sudo dd if=raring-desktop-amd64.iso of=/dev/sdc  oflag=direct bs=1048576

な感じ。

ubuntuインストール後

LANG=C xdg-user-dirs-gtk-update
sudo apt-get install ibus-mozc

これをやる.

gnome shell

$ sudo apt-get install gnome-tweak-tool

skypeでビデオビューが透明になる場合

bash -c "export XLIB_SKIP_ARGB_VISUALS=1 && skype"

な感じで起動すればよい。

SSDを使う場合

  • SSDかどうか確認
    $ cat /sys/block/sda/queue/rotational
    0 -> SSD
    1 -> HDD
         
  • TRIMを有効にする fstabにdiscardを足す
    UUID=e1c0397f-6261-4c77-9449-f1b035f63f38 /               ext4    discard,noatime,errors=remount-ro 0       1
    UUID=7eff9a56-0eb7-459f-bf1e-4deebc7600d6 none            swap    sw,discard       0       0
  • スケジューラをnoopに変更
    # echo "noop" > /sys/block/sda/queue/scheduler
    # cat /sys/block/sda/queue/scheduler
     [noop] deadline cfq 
    でおk

電源管理

USBブータブルディスク

例えば /dev/sdc がUSBメモリだったら
sudo dd if=debian-live-7.6.0-i386-standard.iso of=/dev/sdc bs=2048k

[ 戻る ]

添付ファイル: filelibs-20100909.tar.gz 656件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2014-09-06 (土) 03:06:28 (1020d)