最近の変更サイトマップ

FreeBSD 10に入れたTomcat 7のタイムゾーン設定方法

何かの拍子に、Tomcat 7.0で動かしているサービスのタイムゾーンがUTCとして認識されるようになってしまった。マシンのRTCは昔からUTCで、OSのロケール≒タイムゾーンも以前からJSTで特に変更はしてないのだが…。

変わっちゃったもんは仕方ないんで、Tomcatのタイムゾーンを変更する方法を調べたところ、setenv.shでCATALINA_OPTS環境変数を弄ればいいらしい。setenv.shってどこにあんのよっていうと、/usr/local/apache-tomacat-7.0/bin/である。もっとも自分の環境(FreeBSD 10.3-RELEASE-p26/Tomcat 7.0.59)ではsetenv.shは無かったんだけど、startup.shを見るにsetenv.shがあれば読み込むように見えたので、新規で作ったら上手く行った。

setenv.shの中味は以下の通り。

export CATALINA_OPTS='-Duser.timezone=Asia/Tokyo'

あとはApacheとTomcatを再起動してやればおk。

FreeBSD 11で「warning: total configured swap (X pages) exceeds maximum recommended amount (Y pages).」と言われた時の対処法

「対処法」と言いつつ、FreeBSD 11.1-RELEASE-p4で試した限り、なぜか上手く行かないので対処法になってない。折角調べたので参考情報として残しておく…(´・ω…:.;::..

物理メモリ1.5GBのFreeBSD 11.1-RELEASE環境で、16GBのスワップを追加したら以下のメッセージが表示された。

warning: total configured swap (4194304 pages) exceeds maximum recommended amount (2994784 pages)
warning: increase kern.maxswzone or reduce amount of swap.

カーネルが扱えるサイズを超えるスワップを追加すると出るそうで。本事例だと、最大スワップサイズは2994784ページで、1ページ=4KiBなので約11.4GiBとなる。

この値はどこで決まるかと言えば、warningの2つ目で示されているkern.maxswzoneカーネルパラメータである。スワップ管理用メモリの最大バイト数を指定するパラメータで、11.1Rではスワップ約200MiBにつき1MiBが必要とのこと。特に指定しなければ、物理メモリの8倍のスワップを扱うのに十分な容量が確保される。

実際に確保された量は恐らくvm.swzoneパラメータの値。本事例では53904384バイトとなっており、計算するとwarning中の最大スワップサイズと概ね一致する。

というわけで、/boot/loader.confに次の一行を追加してみた。

kern.maxswzone="75464704"

値はまー適当。11.4GiBで53904384バイト必要なんだから、16GBなら1.4倍して一応4KiB単位に揃えた感じ。

これで再起動すればOK!

……のハズだったんだけど、なぜか値が反映されないの(´・ω・`)。kern.maxswzoneには反映されるんだけど、肝心のvm.swzoneが変わってない。警告も相変わらず出る。kern.maxswzoneは名前の通り最大値を制限するものであって、スワップの最大サイズは物理メモリの8倍という制限は超えられないって事なのかしら…?これ以上はソース見ないとわからんな。

参考サイト

ESPの容量は512MiB以上が推奨らしい

FreeBSDのブート環境をEFIにすべく調べてたら、EFI System Partitionについて留意すべき事が幾つかあるようなので殴り書き。公式仕様書といった一次情報は未見、かつEFI黎明期のバッドノウハウが混じってる可能性もあるので、本記事の正確性については保証できますん( ゚ω゚ )

ESPのファイルシステム:

  • FAT32が正式
  • 一部のLinuxディストリビューションはFAT16で作ることがある
  • FreeBSDのnewfs_msdos -F 32で作ったFAT32は、一部のEFI実装で正しく読めない事がある。この場合はFAT12, FAT16で作ればよい。
  • Linux/FreeBSDではFAT12, FAT16のESPでも問題ないが、WindowsはFAT32しかだめ。
  • 大抵のUEFIはどのFATでも大丈夫だが、一部の実装ではFAT32以外だとダメ。

ESPのサイズ:

  • 正式な言及はなし
  • ただし、FAT32の最小サイズは65527クラスタで、1クラスタの最小単位は1セクタであるから、(最小ESPサイズ)=(セクタサイズ)×65527 となる。
    • 1セクタ=512バイトの場合:33549824B=32763.5KiB≒31.995MiB
    • 1セクタ=4096バイトの場合:268398592B=262108KiB≒255.964MiB
  • しかし一部のEFI実装は512MiB未満のESPを正しく扱えない事がある。
    • こっちの資料には、FAT32は最小クラスタサイズ4KiBで最小ボリュームサイズが512MiBとあるので、最小クラスタが4KiB想定の実装があるのかも?
  • 一方で、Windows/MacはESPを200MiBで作るので最早訳ワカメ状態(512Eドライブまでなら規格上も問題ないんだろうけど…)
  • Linuxのmkdosfsコマンドは520MiBまでのパーティションをFAT16で作るのがデフォ挙動なので要注意。
  • FAT12, FAT16の場合、最小サイズ制限はない

ファーム、OS、ストレージのそれぞれの都合が絡み合って何とも複雑な状況っぽい。

FAT32の最小容量制限を考慮すると、FreeBSD 11デフォの800KiBのESPなんぞ以ての外ですな。今後、ネイティブ4Kストレージが増えてく事を考えると、Windowsを使ってFAT32な512MiBのESPを作るのがさいつよか?

参考サイト

Macに4kモニタをDP MSTで繋いでる人はSierraにするべからず

間もなくHigh Sierraがリリースされるというのに、今更Sierraの話題でごめんね。

Macで4kモニタをDisplay Port 1.2のMST1)モードで繋げて使ってる人は、10.12にしてはいけない。もれなくマウスカーソルの挙動がバグる。ウィンドウの境界にマウスポインタを持って行くと、アイコンがウィンドウのリサイズ操作を意味する「↔」に変わるけど、この変の挙動がおかしくなる。

まず、ウィンドウ境界の判定がおかしい。ポインタの表示は「↔」とかに変わるが、実際に操作しようとすると正常に機能しない。詳しく調査はしてないけど、境界の左右どちらか幾分ズレた所に操作領域があるっぽい。そして、一度変わったポインタアイコンは、操作領域を外れても元の通常ポインタ表示(「↖」こんなやつ)に戻らない。でも機能としては通常のマウスカーソルである。

このバグはウィンドウ境界だけではなく、Finderの列幅調整などのドラッグで操作可能な部分でも起きる。

本国のフォーラムではSierraリリース直後から問題が報告されてるのに、10.12.6でも直ってない。それどころか、High Sierraのβ版でも直ってないみたい(改善はされてるらしいが何かの拍子に再発する模様)。

僕はYosemite以降のOSXがどーも肌に合わなくてMavericksを使い続けてるんだけど、そろそろ各種アプリのサポートが切られ出したから重い腰を上げてSierraに更新した矢先の仕打ちですよ。こんなこともあろうかと、別パーティションで試してたのでソッコウでMavericksに戻って事無きを得ましたけどね。

それにしても、Yosemite以降のOSXって本当に品質が悪過ぎじゃないですかね…。このバグにしたって、社内で外付け4kモニタ使ってる人がいれば一発で発覚するだろうに。まともにQAチェックもしてないんだろうね。公式で4k情報を出すくらいなんだから、最低限のチェックくらいはしてもらいたいものだね。

こんな調子じゃ当分10.9から離れられなさそう。いよいよもって10.9じゃ立ち行かなくなったら、その時はもうMacを止めるかもしれない。

参考サイト

1) Multi Stream Transport

lang/php71とwww/mod_php71のZTSオプションは合わせないとハマる

FreeBSDでportsからPHP 7.1とmod_php71をインストールする際、それぞれのZTSのオプション設定を合わせておかないとハマる。というのも、ZTSの有無によってPHPエクステンションの読み込みパスが変わるからだ。

  • ZTS無効時:/usr/local/lib/php/20160303/
  • ZTS有効時:/usr/local/lib/php/20160303-zts/

エクステンションはlang/php71のZTSオプションに沿った場所にインストールされる。一方、mod_phpは自身のZTSオプション設定に沿った場所からエクステンションを読み込もうとするため、設定を合わせておかないとApache起動時に

Failed loading /usr/local/lib/php/20160303-zts/opcache.so:  Cannot open "/usr/local/lib/php/20160303-zts/opcache.so"

てな感じで怒られる事になる。

start.txt · 最終更新: 2016-05-07 17:46 by decomo
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0