#nofollow
#norelated
*メモ/メモ [#z0baad88]
----------------------------
#contents
----------------------------
*非公式sorucelist [#b094b143]
-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


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

 $ dpkg --get-selections > list

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

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

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

*USBバスの中身を監視 [#tfcc9159]
 http://pylone.jp/blog/tips_usbmon
が参考になる。

*mysqlのビルド [#o59576ca]

 ./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



*あとでまとめる [#l6840fe5]
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を入れる [#ue540f56]
	■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を丸ごとバックアップ [#ofe297e1]
 $ 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を途中から送信 [#a4469c00]
 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 [#u3f2c524]
- http://www.adobe.com/devnet/rtmp.html

*音声編集ライブラリ [#f5912fd8]
-http://www.surina.net/soundtouch/

*android IS03 [#x9bed6a0]
- /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 を使ってみる. [#yb6beaa1]
 http://appinventor.googlelabs.com/learn/setup/setuplinux.html 
 ここから Appinventor Setup installer Debian package. をダウンロードしインストール。
 http://appinventor.googlelabs.com/ に行き適当に作るw

*MP4Box gpacを入れる [#e3a78927]
 http://sourceforge.jp/projects/sfnet_gpac/downloads/GPAC/GPAC%200.4.5/gpac-0.4.5.tar.gz/
からソースをDLしビルドする。

*ビデオファイルからDVD-Videoに変換(ISO)して焼く [#j92a4768]
-まず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/
以上で完了。

*環境の切り替え [#maa63745]
 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を切り替える。~

*マザーボードの情報を見る [#d0469d54]
 $ sudo dmidecode
すると色々でてくる。BIOSバージョン等も。

*ISOイメージをUSBに書き込む [#c561abaf]
 $ sudo dd if=raring-desktop-amd64.iso of=/dev/sdc  oflag=direct bs=1048576
な感じ。

*ubuntuインストール後 [#c4b303b8]
 LANG=C xdg-user-dirs-gtk-update
 sudo apt-get install ibus-mozc
これをやる.

*gnome shell [#s8e7e31b]

-gnome shellのエクステンション
-- https://extensions.gnome.org/

-gnome系のskin's
-- http://gnome-look.org
--- http://gnome-look.org/content/show.php/Blueberry+Ripple?content=148887

 $ sudo apt-get install gnome-tweak-tool

*skypeでビデオビューが透明になる場合 [#m8f4e95b]
 bash -c "export XLIB_SKIP_ARGB_VISUALS=1 && skype"
な感じで起動すればよい。

*SSDを使う場合 [#ze1e741b]
-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

*電源管理 [#x7e19d9d]
- http://linrunner.de/en/tlp/docs/tlp-linux-advanced-power-management.html
- http://www.ubuntugeek.com/how-to-improve-ubuntu-laptop-power-management.html

*USBブータブルディスク [#p537b7aa]
 例えば /dev/sdc がUSBメモリだったら
 sudo dd if=debian-live-7.6.0-i386-standard.iso of=/dev/sdc bs=2048k

#back

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS