anchor
Safari復活!〜&トラブルも復活(-_-;)〜追記あり、さらに追記あり〜さらに最終的には完全解決・・・皆さんのおかげです(T-T)
OS10.4.11、Safari3.0.4に上げて以来、Safariが壊滅的に使い物にならないということをここでたびたび書いた。
それについては過去にいろいろな方法を試してきたということを以下の記事でも書いた。
参照
2007 年 11 月 21 日
Safari3.0.4での異常なモタリを解消する方法〜途中まとめ、解決したとはいえないが一応の成果は上げられたので(追記あり)
2007 年 12 月 7 日
Safariのキャッシュ生成を禁止する設定〜これでSafariの虹色ボールを防げる・・・ところまではいかなかったが少し効果はあった
結局ほとんど改善されないので、1月一ヶ月間iCab+RSSビュアーとしてFirefoxを使っていることも書いた。
その結果システムが異常にモタルとか、Swapがどんどんできてレインボーボールが止まらないなどの症状はほぼ治まった。
この異常はSafari3.0.4+OS10.4.11の組み合わせでないと出ないことはほぼ確認できた。
それでこのiCab+Firefoxという組み合わせで何ら問題なく使えるのならこのままも良かったのだけど、やはり使い慣れたSafariでないと不便だという面が出てきた。
最大の問題はシステムのキーチェーンとの親和性。
iCabやFirefoxではセキュリティがかかっているサイトのうち、どうしてもログインできないページが出てくる。
またログインできるのだけど、どうしてもそのパスワードをフォームオートフィルで覚えてくれなくていちいち手打ちしないといけないとか、「使えない」というほどでもないのだけど微妙に不便なところが結構多い。
またページスクロールの場合はSafariならhtmlだろうがxmlのRSSだろうが
コマンド+上下アローキー
でページの一番上(下)に一気に飛ぶし
option+上下アローキー
でページの次の上(下)領域に移動するという操作が統一されている。
しかしFirefoxではそうではないし、iCabにいたってはRSSにも対応していない。
この微妙な不便さはストレスとして積もり積もっていた。
「そうだ!やっぱりSafariを使おう!」
昨日突然思いついて、Safari復活と相成った。
ただし前の環境でそのままSafariを起動してもまた半日後にSafariが反応しなくなって強制終了するしかないに違いない。
実際試してみるとやはりそうだった。
(試してみないと納得せんのか・・・君は)
Safariを久しぶりに起動
相変わらずCPUはガンガン使ってSwapガンガン作りまくって半日で沈没した
それでテスト用のその名も
「test」
というアカウントを作ってここでSafariのテストをすることにした。
ただし、本当はコントロール(条件を変えた比較実験を同時に行って、ある現象の原因や効果などを突き止める科学実験の考え方)のためにまっさらの状況でSafariをしばらく走らせるべきだったが、半日走らせる必要があることから、ある程度このアカウントでも仕事ができるような条件を整えておこうと思った。
具体的にはログイン項目でメニューエクストラ、コンテクストメニュー、システム環境設定ペイン、メーラ、アドレス帳、メモノートアプリなど仕事で使っているファイルや、アプリのplistファイルの移植などをやった。
この時点で以前Safariで表示しているリンクを
コマンド+クリック
で新しいタブで開くという機能が死んでしまったことも書いたが、この機能が生き返っている。
この機能はここまで移植していないなにかが原因になって、動いていないのだろう。
Safariをテストするために「test」というユーザを作った
イチから設定を始めたためにデスクトップもスッキリ片付いていい気分
さい先よくスタートしてSafariも快調に動いていたのだが、半日でSafariクラッシュ!
ちょっと間抜けな結果になってしまったがここまで移植した何かに原因は特定された?
ここで今日半日テストした結果、なんと前の通りSafariがまたまたクラッシュ。
この検証の結果何がいえるかと言うと、このSafari3.0.4は昨日移植した設定、常駐アプリの中のどれかと問題を起こしてクラッシュしているか、もともとOS10.4.11と組み合わせることでクラッシュする性向があるのかどちらかだということだ。
本当は新しいアカウントで何も設定していない真白な状態で半日走らせていれば、上記の二つの要因のうちどちらかも断定できた筈だ。
基本的な設定と常駐ソフトだけだから、きっとクラッシュは出ないだろうと考えていたのが甘かったのだが、逆に言えばそういうものが原因の場合は昨日からやってきた設定変更や常駐アプリに原因は特定されたわけだ。
(逆に例のリンクを新規タブで開けない問題は上記のどちらも原因でないわけだからちょっと面倒だ。まあいい、その件はいずれ対処する)
純粋に原因を究明したいならやはり、真白なアカウントでテストをスタートして、問題が起きるか様子を見ながら一つずつ設定を戻していくというやり方をしなくてはいけないのだろうが、やはりデイリーの仕事機なのでなかなか思うに任せない。
設定を変えたらすぐに結果が出ればいいのだが、一つ変更するごとに半日負荷をかけ続けないといけないというのが、問題を複雑にしている。
さらに本日ユーザ領域の「システム環境設定ペイン」を全て外してテストするが、やはり問題が起きたため、この領域はシロと断定。
APEやFruitMenuは結構怪しいと思っていたのだが、このあたりはあっさりシロになってしまった。
そこで現在はSparkを起動項目から外してテスト中。
しばらくはこうしたdaemonや常駐アプリを一つずつ外して様子を見ていく。
今度の休日にはもうひとつテスト用のアカウントを作って今度は真白な状態でテストをする。
その状態でやはり問題が出たら、やはりこのシステムは見捨てるということになるかも。
もう世間はLeopardなのだし、いつまでもTigerの延命にこだわっても仕方がないのだが・・・
ところで不思議なことがあるのだが、テスト用に複数のアカウントを作って
両方にログインするとなぜかスクリーンが青っぽい色になってしまう
システム環境設定ペインの「ディスプレイ」を見るとなぜか
液晶の標準プロフィールの「カラーLCD」が消えている
再起動すると「カラーLCD」は復活するので
消失しているわけではないのだが複数ログインするとまた消える
原因は分からないがこれも一つの挙動不審だ
<追記>
いきなり結論が出てしまったが、Sparkはシロだった。
このまま一つずつ順番に常駐アプリを外していく愚直な方法をとってもいいが、私がLeopard搭載機に買い替えるまでに間に合う確信がなくなってきたので、怪しいものから順番にテストしていくことにした。
そこでかねてから怪しいと感じていたAPE Managerのframeworkの方を外してみることにした。場所は
"/Library/Frameworks/ApplicationEnhancer.framework"
ということになる。
それに関連して
"/Library/Application Enhancers/"
に入っているいくつかの全アカウント向けAPEを全て隔離した。
APEはLeopardでも問題を起こしていたので、それがヒントになっているのだがどういう結果になるだろうか・・・
これは私がよくやる手
frameworksや支援ファイルなどを隔離したい時に元のディレクトリのすぐ隣りに
「◯◯使わない」というようなディレクトリを作ってそこにそのファイルを移動する
OSXはパス管理なのでゴミ箱に移動しなくてもこんな簡単なことで無効になる
また元に戻したい時にファイルのあった元の場所が判らなくなることもない
<さらに追記>
上記Application Enhancerのframeworkを外してみるテストの結果が出た。
結論からいえばこれもシロ、つまりこれを外しても同じようにシステムを巻き込んだSafariのモタリは発生した。
引き続き違う方法を試してみる。
BBSでSafariのファビコンキャッシュがメモリリークの原因ではないかというヒントをいただいたので、これをテストしてみる。
<さらにさらに追記>
上記ファビコンキャッシュの禁止は結局効果がなかった。
少しレインボーホイールが出るタイミングを遅らせることができたかもしれない。
そこらは再評価の必要があると思うが、これも解決にはいたらなかった。
2008 年 2 月 4 日
anchor
Safariがもたつく問題が一応解決したような・・・こんな解決法で良いのかと思いつつ・・・
先日来Safariがもたつく問題についてずっと検証していて、一応の原因と解決法が判明したので。
まず発生条件だがSafari3.0.4、とOS10.4.11という組み合わせで、これ以外の組み合わせでこの問題は起きないらしい。LeopardとSafari3.0.4の組み合わせでやはりもたりやSafariが落ちるなどの症状が出ているそうだが、それがこれと同じ問題なのかは未検証。
これは同じSafari3.0.4でもLeopard版とTiger版ではビルドナンバーが違うことと関係があるのかもしれない。
Safariを起動して普通に小一時間ほど動かしていてもこの問題は起きない。
私の場合タブを30以上開きっぱなしにして起動しっ放しにしてRSSアグリケーターみたいな使い方をしている。
この問題が起きる人と起きない人があるというのが、この原因究明のネックになってきていたのだがひとつはこのSafariにかける負荷の大きさも関係あると思う。
普通の人は時々Safariを起動してパラパラネットを見るくらいだとしたら、それくらいの負荷では問題が起きないものと思われる。
私の場合はOSが起動している間は基本的にブラウザは起動しっぱなしで、しかも上記のように30以上のタブを頻繁にリロードしているのでかなりの負荷がかかっていると思われる。
以下の話はこの条件下で起きる問題ととらえてほしい。
この負荷がつづくと大抵は一日で、早い時には半日でSafariを操作しようとするとレインボーボールが回りっぱなしになって数分間どんな操作も受け付けなくなる。
数分経つと復帰することがあるが、いくつか操作をするとまたレインボーボールが回り始めるので結局Safariを強制終了→再起動した方が早い。
時々この負荷でOSまで動作が激オソになることがあるので、OSとの複合的な問題かと疑っていた。
しかし以下の検証により、これはやはりSafariの単独の問題と断定した。
BBSで「けけ」さんからかなり早い段階から「JavaScriptを無効にする」と動作が軽くなるという情報をいただいていた。
この問題にもっと注目するべきだった。
調べたところSafariは恐ろしい速度でJavaScriptのログを吐き出していることが分かった。
BBSでSafariのdebugメニューから「Log JavaScript Extentions」のチェックを外すと
システムイベントログへの書き出しが激減するという情報をいただいていた
確かにこの操作でシステムログへのコンタクトは激減するのだが
その下の「Show JavaScript Console」をクリックすると・・・
JavaScript Consoleが表示されここにものすごい速度でログを書き出していることが分かった
メッセージの数はなんと一晩で70万〜100万行におよぶ
何ら操作をしていない時でもものすごいスピードでログを吐き出し続けている
この頻度でディスクにアクセスしていたら遅くなるのは当たり前という気がした
下の「Clear」ボタンで一応リセットできるがそれで数分待たされる
リセットしてもまたスゴい速度で書き出しが始まるので解決にならない
ちなみにこのコンソールを呼び出すホットキーはコマンド+shift+Jキー
根本的解決は「けけ」さんの情報通りコマンド+「,」キーを叩いて設定を呼び出し
セキュリティタブで「JabaScriptを有効にする」チェックを外すしかない
これではJavaScriptを使っている最近のサイトは皆表示が崩れてしまうので
その読み込みの動作をする時だけこのチェックを入れる
非常に不便だが今のところこれしか有効な解決法がない
こうしてSafariが書き出した仮想メモリは一晩で1GBに届く
こういうのをメモリリークというのじゃないだろうか
一応これで原因と対策は分かった。
ちょっとメロメロな感じだし、この不便さを受け入れるかSafariを諦めるかという選択は迫られそうだが、Safariを使うなら使えないことはない。
この問題が何か別の条件と複合的に起きているのかは引き続き検証する。
先日作ったテスト用アカウントを削除してやはりまっさらの状態で一度テストすることが必要なようだ。
明日からの3連休でこれにトライする。
2008 年 2 月 8 日
anchor
Safariがモタル、虹色ボールぐるぐる、強制終了という問題が完全解決した
昨日Safariのモタリを解決するのにJavaScriptのチェックを外すということを書いたが、さらにBBSで「Multy」さんから
「mutaさんのところだけは、確かに、ものすごい勢いでログを吐き出し続けます」
という情報をいただいた。確認したところこのログをものすごい速度で吐き出し続けるところはこのサイトのトップと「よく使うアプリケーション目次」、最新ページの3カ所だけと分かった。
さらにこの3カ所で共通のJSコードを探してみたところ該当するものは2〜3に絞られたので、これを順番に外してみたところ、なんと
「Mac onlineware search」
のコードが「安全でないJavaScript」として認定されており、またサーバとのマッチングに問題があるというアラートを毎秒数十回の勢いで猛烈に吐き出していることが分かった。
Safariのタブで開いていた私自身のサイトが問題を起こしていたというのが、全く恐縮というか慚愧のいたりだったのだが、この問題は現時点では全て対処したので、安心いただきたい。
これはGoogleのガジェットのコードを貼っていたものが、こういう問題を起こしていたので、
「Mac onlineware search」
を貼っていただいているサイト管理者さんにはSafari対応のために、このリンク先のGoogleのガジェットのコードではなく、これの作者の「ハル」さんの「うむらうす」のこちらのページからコードをコピペして貼っていただきたい。
「ハル」さんのコードは何ら問題を起こさないので、これで問題は解決する。
この問題に興味を感じてあちこちリサーチしてみたのだが、どうも一部のGoogleガジェット、Amazonアフィリエイトなどのコードを貼りまくっているサイトで問題が起きているようだ。
それ以外にも該当するケースはあるかもしれないが、これらのコードはSafariの旧バージョン、あるいはweb kitの旧バージョンのエンジンではなんら問題が無かったのだが、最新バージョンから
「安全なJavaScript」
の定義が厳しくなったらしく、そういうものに当たるとログを猛烈に吐き出し始めるという仕様になったらしい。
なので対策をまとめると
まずweb管理者さんは
1)自サイトをSafariで表示してみてCPU等がフルアップしないかチェックする。
フルアップしている場合はコマンド+Shift+JキーでJavaScriptのログを吐き出していないかチェックする
吐き出している場合は問題のJavaScriptコードを特定する。
2)「Mac onlineware search」に賛同いただいて、この検索ウインドウを貼っていただいているサイト管理者さんは、必ず「うむらうす」のこちらのページから「ハル」さんのコードをコピペして貼っていただくこと。
Googleのページからガジェットのコードが得られるが、これは使わないこと。
という対策をお勧めする。
またweb閲覧者に関しては
1)Safariでwebを巡回する時にはCPUが突然フルアップしないかを注意してみておくこと
2)フルアップした場合はコマンド+shift+JキーでJavaScriptのログを見ること
そこで
「Unsafe JavaScript attempt to access 〜〜〜」
というようなログを大量に吐き出しているようだったらコマンド+「,」キーで設定を呼び出し「セキュリティ」タブで「JavaScriptを有効にする」チェックを外す
3)念のためにJavaScriptログをクリアしておく
4)問題のサイトを閉じたら再び設定の「JavaScriptを有効にする」チェックを入れる
というような対応で、この問題は解決すると思う。
久々に長期間苦しめられた問題だったが、これで一応の解決を見た。
当サイト提唱の「勝手にオンラインウエア情報サイト共闘」の金字塔、
「Mac onlineware search」だったが今回はこれが問題を起こしていることが判明した
これはGoogleサイトのからもらってきたガジェットコードだったのだがこれがダメだったらしい
「Mac onlineware search」については「ハル」さんのコードは問題が無いので現在は全て張り替えた
このコードを削除すると例の「JavaScript」ログを猛然と吐き出し
一晩で1GBの仮想メモリを書き出すという動作も停まる
このことから以下のようにビジタも対策ができる
Safariでwebを閲覧する時には常にMenu MetersなどでCPUを監視しておく
急にCPUがフルアップしたらコマンド+shift+Jキーで「JavaScript」ログを確認する
このように「Unsafe JavaScript attempt to access 〜」というようなログを
猛烈に吐き出しているようだったらコマンド+「,」キーで設定を開いて
セキュリティタブの「JavaScriptを有効にする」チェックを外す
その上で念のために左下の「Clear」ボタンをクリックしてログをクリアしておく
問題のサイトを離れる時には再びコマンド+「,」キーで設定に入り
セキュリティタブの「JavaScriptを有効にする」チェックを入れておく
これでJavaScriptが入っていないことで多くのサイトの表示が崩れてしまう不便さを防げる
<余談>
なおこれを機会に前々からやっておきたいと思っていたことだが、「Mac onlineware search」の検索フォームをトップページだけでなくデイリー記事のページや「よく使うアプリケーション」の全ページ、ShortcutとTipsの全ページに貼りたいと思っていたのをやっと今回実現できた。
個人的にはこれがうれしい。
<後日追記>
さらに確認テストを続けているがSafariが1GBの仮想メモリを書き出すというのは、この対応をしても同じことだ。
今までは1日で1GBになっていたが、2日以上かかるようになったというだけだ。
やはりずっと起動しっ放しだと、Swapがどんどん増えることには違いがない。
ただ、それでSafariがレインボーホイールを回しっぱなしにして反応しなくなるとはなくなった。
この二つの問題は別の問題なのか。いずれにしても際限なくSwapを書き出すSafariの仕様も不完全なものを感じる。
改善されると良いのだが。
2008 年 2 月 10 日
anchor
「Safariの不調はIPv6を切る」というおまじないのような方法が「Jekylle+」さんのところでは効果があったそうだ
「Jekylle+」さんの
Safariの不調
というエントリによると
「IPv6を切るとSafariの不調が治まった」
とのこと。
「どこで読んだか思い出せないが」
とのことだが、ひょっとしたらここかもしれない。
OS運用記録11月3「Safari3.0.4での異常なモタリを解消する方法〜途中まとめ、解決したとはいえないが一応の成果は上げられたので(追記あり)」
ここで「2ちゃんねるのうわさ」として「IPv6を切るとSafariの不調が治まった」という話を取り上げた。
当時は私もSafariの不調の真っ最中だったので、ワラをも掴む思いで2ちゃんねるのウワサまで集めてきて考えられることをすべて試していた。
それで私の場合はIPv6の無効化は全く効果がなかったので、
「やっぱり根拠がないウワサか」
思っただけだったが、「Jekylle+」さんの場合は見事に効果があったそうだ。
今にして思うとあのSafariの不調はひとつだけの原因ではなく複合的な原因が重なって起きていた気がする。
その中にはIPv6の問題もあったかもしれない。
これはそれぞれ個人の環境にも起因する。
私の場合は関係なかったが、人によってはアクセスポイントから先、常駐しているサイトとかどこかにIPv6のトンネルがあるというケースもあるのかもしれない。
その場合なぜかSafariが「過剰な反応」を起こしてスタックしたり落ちたりするということが起きるのかもしれない。
一応私のところでは一旦は解決した問題だが、この問題の解決法は一様ではないかもしれないという話だ。
最近はSafariをほとんど使わないでもっぱらFirefoxばかりなので、今どきの事情はよくわからないのだが。
2009 年 1 月 8 日
anchor
IPv6を外さない方がインターネットが速くなるという件について
先日「Jekylle+」さんのところではSafariがやたら落ちる問題をシステム環境設定のIPv6を切ることで解決したという話を取り上げたところ、BBSに「Hide」さんから情報をいただいた。
「私の環境(DSL)ではシステム環境設定でIPv6を無効にすると激遅に、network.dns.disableIPv6の無効は効果無しでした...」
あれっ?と思って私のところでもさっそく試してみた。
最近Safariといわず、MinefieldもFirefoxも皆表示が遅くなっていたような気がしていたからだ。
キャッシュが溜まっている所為だろうと思ってキャッシュクリアをするのだが全然改善しない。
「どうしてかなぁ?気のせいか?」
と思っていたのだが、システム環境設定に入ってIPv6を「自動」に戻してみるとなんとMinefieldの表示がまた激速になった。
まだSafari等は試していないが、どうもこの設定は「Hide」さんがおっしゃるように一筋縄ではいかないようだ。
ただ疑問なのは、この設定変更はSafariからMinefieldに乗り換える前にした筈で、Minefieldは導入当時は激速表示をしていた筈だから、いつからこの設定が悪影響を及ぼし始めたのかちょっと記憶が曖昧なところだ。
OSのアップデートとも関係があるのかもしれない。
結局原因も意味も全く分からないのだが、結果オーライということで特定のDSL環境ではIPv6の設定は入れておく方がネットの表示は速くなる。
システム環境設定の「ネットワーク」から今つないでいるネットワーク設定に入って
「IPv6の構成」を「切」から「自動」に変更する
これだけでMinefieldの表示が驚くほど速くなった
2009 年 1 月 8 日