24のプログラミング言語をブラウザ上で実行できる「paiza.IO」 環境構築の手間ゼロ - ITmedia ニュース
http://www.itmedia.co.jp/news/articles/1411/18/news157.html
久々にピピンとくるサービスが出てきたので早速使ってみる。
paiza.IOとは
- 使い捨ての仮想マシン上でプログラムを実行できるサービス
- ブラウザ上で提供されるエディタで書いてそのまま実行、すぐ結果が返るってくる
- 特にサインアップしなくても使える。シンプルイズザベストを素で行くサイト
- プログラム実行タイムアウトは2秒。超えると実行エラー
- メモリは512MBまで。
- 仮想マシンに書きこんだデータは実行後消去される(コンテナ仮想化かな?)
- いろんな言語を使える https://paiza.io/help
- Ctrl+Enterでコンパイル+実行されるのでキーボードに手をおいたまま使える
- 外部ネットワークへのアクセスを許可している(ポイント!)
- スケジュール実行できる(ポイント!)
→ 割りとありがちなサービスかと思いきやこれは夢が広がる
スペックを探ってみる
uname -a
Linux a8c6482f9e09 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
ubuntuらしい。
ps ax
PID TTY STAT TIME COMMAND
1 ? Ss 0:00 sh -c /sbin/ifconfig eth0 > ifconfig.txt; rm ifconfig.txt; /usr/bin/time -v -o exec_time.txt ./run_user runner2 bash Main.sh <exec_stdin.txt >exec_stdout.txt 2>exec_stderr.txt;echo $? > exec_exit_code.txt
10 ? S 0:00 /usr/bin/time -v -o exec_time.txt ./run_user runner2 bash Main.sh
11 ? S 0:00 bash Main.sh
12 ? R 0:00 ps ax
timeコマンドでタイムアウトを見てる。
ifconfig
eth0 Link encap:Ethernet HWaddr XX:XX:XX:XX:XX:XX
inet addr:XXX.XXX.XXX.XXX Bcast:0.0.0.0 Mask:255.255.0.0
inet6 addr: XXXX::XXXX:XXXX:XXXX:XXX/XX Scope:Link
UP BROADCAST MTU:9001 Metric:1
RX packets:1 errors:0 dropped:2 overruns:0 frame:0
TX packets:1 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:78 (78.0 B) TX bytes:90 (90.0 B)
割り振られるMACアドレスはランダム生成?
IPは実行するたびに最下位+1
cat /proc/cpuinfo
processor : 7
vendor_id : GenuineIntel
cpu family : 6
model : 62
model name : Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz
stepping : 4
microcode : 0x415
cpu MHz : 2793.340
cache size : 25600 KB
physical id : 0
siblings : 8
core id : 3
cpu cores : 4
apicid : 7
initial apicid : 7
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx rdtscp lm constant_tsc rep_good nopl xtopology eagerfpu pni pclmulqdq ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm xsaveopt fsgsbase smep erms
bogomips : 5586.68
clflush size : 64
cache_alignment : 64
address sizes : 46 bits physical, 48 bits virtual
power management:
8コア
total used free shared buffers cached
Mem: 15039 14635 404 4576 612 11571
-/+ buffers/cache: 2450 12589
Swap: 0 0 0
15GB
cat /sys/class/dmi/id/bios_vendor
cat /sys/class/dmi/id/chassis_vendor
cat /sys/class/dmi/id/product_name
cat /sys/class/dmi/id/sys_vendor
Xen
Xen
HVM domU
Xen
Xenの仮想マシンのようす。
systemdはどうやってコンテナ・仮想化環境を判別しているのか - Qiita
http://qiita.com/ozaki-r/items/39bf059896eb13270209
uptime
13:31:15 up 5 days, 5:44, 0 users, load average: 0.52, 0.58, 0.51
しばらく動いているようだ
Filesystem Size Used Avail Use% Mounted on
rootfs 7.4G 4.5G 2.9G 61% /
none 7.4G 4.5G 2.9G 61% /
tmpfs 7.4G 0 7.4G 0% /dev
shm 64M 0 64M 0% /dev/shm
none 7.4G 4.5G 2.9G 61% /.dockerinit
tmpfs 1.5G 368K 1.5G 1% /etc/resolv.conf
none 7.4G 4.5G 2.9G 61% /etc/hostname
none 7.4G 4.5G 2.9G 61% /etc/hosts
/dev/disk/by-uuid/fe967360-f565-4497-8464-f340e473586c 99G 16G 79G 17% /workspace
tmpfs 7.4G 0 7.4G 0% /proc/kcore
やっぱりdockerだった
cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver XXX.XXX.XXX.XXX
search ap-northeast-1.compute.internal
ネットワーク構成がきになる
none on / type aufs (rw,relatime,si=d600e3653b29f7a6)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
sysfs on /sys type sysfs (ro,relatime)
tmpfs on /dev type tmpfs (rw,nosuid,mode=755)
shm on /dev/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=65536k)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=666)
none on /.dockerinit type tmpfs (ro,relatime)
tmpfs on /etc/resolv.conf type tmpfs (ro,relatime,size=1540096k,mode=755)
none on /etc/hostname type tmpfs (ro,relatime)
none on /etc/hosts type tmpfs (ro,relatime)
/dev/disk/by-uuid/fe967360-f565-4497-8464-f340e473586c on /workspace type ext4 (rw,relatime,data=ordered)
proc on /proc/sys type proc (ro,nosuid,nodev,noexec,relatime)
proc on /proc/sysrq-trigger type proc (ro,nosuid,nodev,noexec,relatime)
proc on /proc/irq type proc (ro,nosuid,nodev,noexec,relatime)
proc on /proc/bus type proc (ro,nosuid,nodev,noexec,relatime)
tmpfs on /proc/kcore type tmpfs (rw,nosuid,mode=755)
カレントディレクトリのフォーマットはext4
cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.1 LTS"
長期サポート (LTS)