無視され、描画される順番が狂います。
Inspector を Debug に変更し、Custom Render Quere を -1 に指定すると正しく動きます。
無視され、描画される順番が狂います。
Inspector を Debug に変更し、Custom Render Quere を -1 に指定すると正しく動きます。
mod-wsgi は、python と1:1で紐付いているため、apacheに1つまでしか追加できない。
公式に書いてあるとおり。
yyuu/pyenv · GitHub
$ git clone https://github.com/yyuu/pyenv.git ~/.pyenv ・・・
このときに、オプションを付ける必要があります。
global にしても、しなくてもよいです。
$ CFLAGS="-fPIC" pyenv install 3.5.0 $ pyenv global 3.5.0
$ sudo aptitude install httpd $ sudo aptitude install httpd-devel
以下の方法でインストールしてしまうと、system の python がつかわれる。
$ sudo aptitude install libapache2-mod-wsgi-py3
python のパスを指定します。
$ tar zxvf mod_wsgi.tar.gz $ cd mod_wsgi $ ./configure --with-python=/home/username/.pyenv/versions/3.5.0/bin/python $ make $ sudo make install
<VirtualHost *:80>
ServerName hoge.test
ServerAdmin server-mail@hoge.test
DocumentRoot /hoge/public
WSGIScriptReloading On
WSGIDaemonProcess my_name python-path=/home/username/.pyenv/versions/3.5.0/lib/python3.5/site-packages python-home=/home/username/.pyenv/versions/3.5.0 user=apache group=apache processes=2 threads=25
WSGIProcessGroup my_name
WSGIScriptAlias / /hoge/app.wsgi
<Directory "/hoge/">
Order deny,allow
</Directory>
</VirtualHost>
追加で、
LoadModule による wsgi のロードと、の設定が必要。
WSGISocketPrefix /var/run/wsgi
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ImportError: No module named 'encoding'
python-home は、python コンパイルオプションの、prefix と同じにします。
確認方法は以下。
$ python >>> import sysconfig >>> sysconfig.get_config_vars('CONFIG_ARGS')
python-path は、site-packages までのパスを設定します。
chmod 755 /home/username
pyenv のインストール先を変更するのでも良いと思います。
(13)Permission denied: mod_wsgi (pid=23797): Unable to connect to WSGI daemon process '***' on '/etc/httpd/logs/wsgi.12880.0.1.sock' after multiple attempts., referer: http://dummy.test
WSGISocketPrefix の設定を変更する
C++で new し、C#側で一旦コピー、さらにC++で削除
#pragma once #define DLL_UNITY extern "C" __declspec(dllexport) typedef unsigned char byte ; DLL_UNITY void loadData (byte** data, int* dataSize); DLL_UNITY void freeData (byte** data);
#include "hoge.h" void loadData(byte** data, int* dataSize) { int s = 10; byte* d = new byte[size]; // ... *data = d; *dataSize = s; } void freeData(byte** data) { delete[] *data; *data = 0; }
using UnityEngine; using System; using System.Runtime.InteropServices; public class MyData { [DllImport("libhoge")] public static extern void loadData (ref IntPtr data, ref int dataSize); public static void loadData (ref byte[] data) { IntPtr buff = IntPtr.Zero; int buffSize = 0; loadData(ref buff, ref buffSize); byte[] result = new byte[buffSize]; // コピーしてから使う Marshal.Copy(buff, result, 0, buffSize); freeData(ref buff); } [DllImport("libhoge")] public static extern void freeData(ref IntPtr data); }
FragmentPagerAdapter で 返すデータ数が、実際に3つあっても、
タブで1番目に切り替えを行うまで、FragmentManager の中には、2つしかFragmentが入っていないような動きになっていた。
List<Fragment> datas = getSupportFragmentManager().getFragments();
// 2つだけ
setOffscreenPageLimit で、最後のIndexを設定すると解決する。
final ViewPager viewpager = (ViewPager) findViewById (R.id.main_view_pager); viewpager.setAdapter(adapter); viewpager.setOffscreenPageLimit (datas.size() - 1);
# CPU と同じ数 worker_processes 8; # worker_connections の 4倍程度 # failed (24: Too many open files) に対処できる。 worker_rlimit_nofile 40960; events { # とりあえずこの値 worker_connections 10240; }
# これでpid を確認し、 $ ps ax | grep nginx | grep worker # 数字に、pid を入れる。 $ cat /proc/5618/limits
こちらも処理するキューに貯められる最大値。backlog と小さいほうが優先される。
# デフォルトは 1024。とりあえずこの値にする。 # failed (11: Resource temporarily unavailable) に対処できる。 net.core.somaxconn = 65535
再読み込み
sysctl -p
worker が1増えると、db への connection が1増えるため、max_connection の値には注意する。
DBのpool は、DBの接続数にあまり意味が無い。
worker にアクセスがなければ、unicorn が起動していても connection が増えない場合もあるので注意する。
show status like 'Threads_connected';
この値を超えてしまった場合は、DBへ接続できないということになる。ただし、単純にDBのmax_connection を増やしてしまうと、DB 側のメモリ消費が増えてしまう。
show variables like 'max_connections';
# メモリを最大限消費する数にする。多すぎると、swapが発生し、遅すぎて処理ができなくなる。実際にworker へアクセスされた時にメモリ消費が増えるため、起動した時の値だけで判断してはいけない。 # failed (110: Connection timed out) に対処するための一つの要素。 worker_processes 10 # backlog に、キューに積み上げられる最大数を設定する。 # failed (11: Resource temporarily unavailable) に対処できる。 listen "/var/sample.sock", backlog: 8192