今回のトラブルと原因
状況と問題特定前に試した事
最近、血中酸素濃度や脈拍の推移を計測できるパルスオキシメーターを使って、寝ている間の状態を記録しているんですが、データはcsvで出力されるため、見やすいようExcelで加工しています。
Excelで項目を選択したり、書式を変更したりするタイミングで数秒~十数秒くらい待ちが発生し、操作を受け付けない事が頻繁にありましたが、データ数がそこそこあるからかなと、そこまで気にしていませんでした。
ただ、よく考えると行数は14,000ほど、列数は8とそこそこのデータ数はあるものの大きいというほどでもなく、またCPUはCore i5-2500のSandy Bridge世代(ちょっと古め)、メモリは16GBですが、Excel自体は60MBほどしか食っていません。
タスクマネージャで確認するとCPU使用率は重い時で35%くらいなので、確かに負荷はそこそこあるっぽいです。
FirefoxなどでもCPU使用率が30%付近になると、若干もたつき始めるので。
オートコレクトや自動プレビューのほか、チェック系など重くなる要素の処理を全て外しても全く変化しませんでしたが、マルチスレッドの設定を無効にしたところ、劇的に軽くなりました。
ファイル > オプション > 詳細設定 > マルチスレッド計算を行う のチェックを外すとマルチスレッドが無効になりシングルスレッドで動作します。
マルチスレッドは各処理を同時進行できるので高速化するはずですが、なぜかこれが原因だったようです。
ちなみにCPU負荷も35%ほどだったのが、無効にしたら10%ほどに落ち着きました。
なんか重いという場合は試しにシングルスレッドに変更してみてください。
ちなみにマルチスレッドを無効にしたあと、オートコレクトやチェック関連の設定を全てデフォルトに戻しましたが、特に重くなりませんでした。
と思いましたが、また再発しました。
Excelのグラフ操作が重い原因はSSDの不調でした
前回記したマルチスレッドを無効にしましたが、また頻発するようになり、FirefoxやAMIDuOSなども固まる事が多くなりだし、ソフト固有の問題ではなさそうなのでハードを疑いましたが、原因はSSDでした。
メーラーのThunderbirdなど一部は別ドライブにプロファイルを保存していたため影響がなく、本体や設定など頻繁にアクセスされるファイルがSSDにあるソフトで発生していました。
SSDは「インテル SSD 535 Series 240GB MLC SSDSC2BW240H6R5」で、購入当初に2週間ほどでS.M.A.R.T.の健康状態が一気に17%まで下がり、プチフリーズが頻発するので初期不良として交換したものでした。
交換は同じSSDなので今回発生したのも上記ですが、交換から1年持たずに逝きました・・・
インテルはとても信頼していて、最初に購入した80GBのものは、まだ元気に動いていますので、たまたまハズレのロットに当たったのか、品質が落ちてきたのか不明ですが、インテルのSSDという事もあって、ノーマークだったので原因の解明が遅れました。
それと、インテルはSSDの状態の確認と調整をする、「SSD toolbox」というソフトを公式からダウンロードできるので、それでもチェックしていましたが、問題なしでしたので、SSDは不具合の原因から外していました。
症状は、何か操作をすると7~8秒くらい応答なしになり、その間CPU使用率が30%くらいに上がったままになり、操作可能になるとCPU使用率は数%台になるという感じです。
HDDの時は劣化してくると速度が遅くなってきたり、異音がしてきたりと何か兆候がある場合が多かったですが、SSDは劣化度合いが非常に分かりにくいので困りますね。
現在はトランセンドのSSDを試していますが、なぜかS.M.A.R.T.での温度が51℃まで上昇して警告メールが来ます(S.M.A.R.T.の監視ソフトを入れているので)
6000rpmのHDDは35℃で安定しており、触ってみた感じもHDDの方が温かいのでセンサーの不良かなと思うので、閾値を変更して警告が出ないようにしていますが、今のところ安定して動作しています。
以前まではインテルと東芝のSSDは高いけど間違いないという認識でしたが、インテルでこれでしたし、東芝はゴタゴタしててSSDの部門はどうなるんだろう?という感じです。
次に購入するなら国産がいいので、東芝には何とか頑張ってほしいです。
その後
SSD交換後はグラフ操作も快調になりましたが、かなり悩まされたので多少のもたつきも気になるようになりました。
SSD交換後にも残った「もたつき」は、OneDriveのOfficeタブにある設定の「Officeアプリケーションを使用して、開いているOfficeファイルを同期する」という設定をOFFにすることで改善しました。
Officeで扱えるファイルを複数人で共同編集できる機能ですが、ネットワークアクセスがあるため「なんか重い気がする」原因になっていたみたいですね。
以下では実際に試した事や、試してみると良い事を紹介しています。
Excelが重い場合に試す設定
通常はデフォルトのままで問題ありませんが、ExcelやWordも年々機能が追加されて重いソフトになってきましたので、PCの能力不足も有りえます。
また、環境によって出る不具合の可能性もあるため、動作に影響の出やすい設定項目などを紹介します。
OneDriveの設定
タスクバー右下のOneDriveの雲のアイコンを右クリックして設定からOfficeタブを開きます。
Officeタブに「Officeアプリケーションを使用して、開いているOfficeファイルを同期する」というのがあるのでチェックを外してOKします。
少し前のバージョンだと「Office2016を使用して、開いているOfficeファイルを同期する」という名称です。
今回、グラフが重い症状の根本的な原因はSSDのプチフリーズが原因でしたが、SSD交換後もたまに発生していたプチフリーズのような挙動は、ネットワーク関係のオプションを無効、変更したところ出なくなりました。
Excelの設定
Excelをセーフモードで起動してみる
キーボードの「CTRL」キーを押しながらExcelのショートカットをクリックして起動するとセーフモードになります。
実際の「.xlsx」ファイルでも、プログラムメニューのExcelでも「CTRL」キーを押しながら起動すると以下のように出るので「はい」を押してセーフモードにしてみます。
これで不具合が出ないのであれば「Excelが原因」と判断できますので、Excelの設定を変更してみたり、最終的に解決しない場合はExcelの再インストールをしてみたりします。
Excel以外にも「Word」や「Outlook」なんかも「CTRLキー」押しながら起動するとセーフモードにできます。
既定でコンピュータに保存する
ファイル > オプション > 保存
「既定でコンピュータに保存する」というチェックがあるのでONにし、「サインインが必要な場合でも、その他の保存場所を表示する」のチェック外します。
チェックアウトしたファイルの保存先を「このコンピューター上の~」にする(デフォルトはOfficeドキュメントキャッシュ)
上記2つの設定をしたところ、グラフで何か操作する際(特に何かの初回の動作時)に画面が真っ黒、真っ白になったまま固まったり、応答なしになる症状は無くなりました。
今回、2つとも設定変更しましたが、もう1台のPCはExcelの設定変更だけで改善したので、試しにそちらだけ変更してもいいと思います。
毎回、同じ時間(10秒ほど)フリーズしていたので、ネットワーク処理の何かがタイムアウトするまで待ってるような状態だったのかもしれません。
その他、Excelが重くなる要因になるものと解決方法も記載しておきます。
項目によっては逆に重くなるものもありますが、PCが対象のオプションに非対応(特に古いPC)の場合、オプションを有効にしていると固まる事があるため記載しています(マルチスレッドやハードウェアアクセラレーションなど)
設定のON/OFF両方で動作確認し、どちらが重いか確認してみてください。
自動計算を手動計算にしてみる
ファイル > オプション > 数式
自動がデフォルトで、値が変更されるたびに即反映されますが、データ数が多くなると重くなる原因になります。
手動の場合でも、「ブックの保存前に再計算を行う」というオプションがあるので、リアルタイムの計算が必要なければ手動でもいいかなと思います。
少し新しいバージョンだと以下の設定項目です。
自動スペルチェックと文章校正をOFFにしてみる
ツール > オプション 文章校正
自動スペルチェックを外す
自動文章校正のチェックを外す
スペルチェックは「校閲」タブにあるので必要に応じて手動で行えます。
ハードウェアアクセラレーションを無効にしてみる
ファイル > オプション > 詳細設定
ハードウェアアクセラレーションを無効にするにチェック
マルチスレッドをオフにしてみる
ファイル > オプション > 詳細設定
マルチスレッド計算を行うのチェックを外す
マルチスレッド処理を有効にするのチェックを外す
少し古い世代のPCだと、他のソフトでもシングルスレッドにした方が軽くなる場合が多かったので、ON/OFFで違いが出るか確認してみてください。
プリンタの設定
使っていないプリンタの削除
コントロールパネル > デバイスとプリンター > 使っていないプリンタを右クリックして「デバイスの削除」で使っていないプリンタを削除しておきます。
「既定のプリンタ」を接続中のプリンタにしたり、「Windowsで通常使うプリンタの管理をOFF」にするだけで改善する場合もありました。
Windowsがプリンタと通信しようとして応答がないので待っている(もたつく)という状況なんでしょうか?
Windowsで通常使うプリンターを管理するをオフにしてみる
Windowsアイコン > 設定 > デバイス > プリンタとスキャナ >
Windowsで通常使うプリンターを管理するを「オフ」にする
既定のプリンタを変更してみる
Windowsアイコン > 設定 > デバイス > プリンタとスキャナ > プリンタを選択、管理 > 既定のプリンタ にする。
「コントロールパネル」から「デバイスとプリンター」でも既定のプリンタ設定ができます。
プリンタ一覧から既定にしたいものを右クリックし「通常使うプリンターに設定」をクリックします。
なぜプリンタが通常の動作に影響があるか不明ですが、ページレイアウトなどでプリンタの設定状況を反映しているのかもしれません。
もたつく不具合が出たときに、応答のない(設定だけ残っている)プリンタが「既定のプリンタ」に設定されていた事がありましたので、設定を読み取ろうとして応答が無いので待ってる状態だったのかもしれません。
フォントキャッシュを削除して再構築してみる
以下のファイルを削除します(似たファイル名があるので間違えないようにしてください!)
C:\Windows\System32\FNTCACHE.DAT
Windowsを再起動するとフォントキャッシュが再構築されます。
セキュリティソフトをOFFにしてみる
セキュリティソフトが対象ファイルへ排他的にアクセスしていると、Excelなどがアクセスできずに待ちが生じる可能性があります。
このため、一時的にOFFにして改善するか確認してみます。
これで改善する場合、Nortonだと「自動保護・SONAR~から除外する項目」の「設定する+」から対象ファイルのあるフォルダを指定することで、今後の自動スキャンから除外できます。
ドライブの健康状態を確認する(S.M.A.R.T.)
今回のトラブルはSSDの不調が主な原因でしたが、ドライブの各種情報を確認できる「CrystalDiskInfo」で突然死以外の不調が把握できます。
メール通知機能もあり、常駐させておくと突然死でもメールに状況が残ってたりするので助かります。
基本的に「健康状態」が「正常」なら問題なしですが、HDDの場合だと「回復不可能セクタ数」が増加してきたらほぼ死ぬ直前、不良セクタの代替処理は多少出る程度ならOKですが増加してくるようなら危険みたいな感じです。
SSDの場合は書き換え可能な回数に上限があるため、「利用可能な予備領域」などの情報も確認する必要があります。
それ以外は、SSDやHDDの故障だと思ったら、接続しているインターフェイスの不調の場合もありますので、接続先を変更したり別のPCでも確認してみると良いです。
タスクマネージャから確認できる情報としては「平均応答時間」が長くなった場合は要注意な場合が多いです。
通常は「数ms~数十ms」の平均応答時間ですが、不調になると1000ms以上になったりします。
この場合も、SSDやHDD自体の不調なのか、インターフェイスなのかは分からないので、別PCなどで試す必要があります。
「CrystalDiskInfo」は非常に優秀なツールですが、ありがたいことにフリーソフトとなっており、以下からダウンロードできます。
Windowsのイベントビューアに何か出てないか確認
接続されている機器が不調になると、接続と切断を繰り返したりしますが、こうなるとプチフリーズみたいな動きが出る事があります。
イベントビューアに何かログが出ている事があるので確認しておきます。
イベントビューアはWindows下部バーに検索アイコンが出ている場合は「イベント」と検索すると出てきます。
または、PCを右クリックして「管理」からもイベントビューアへ移動できます。
イベントビューアを起動したら、カスタムビュー > 管理イベント もしくは イベントビューア > Windowsログ > システム と辿ります。
HDDが不調だったときは以下のエラーが大量に出ていました。
ページング操作中にデバイス \Device\Harddisk6\DR6 上でエラーが検出されました。 デバイス \Device\Harddisk6\DR6 はまだアクセスできる状態ではありません。
「OSの起動ドライブ」以外のドライブが不調の場合もOS全体がガクガクしたような動き(特にマウスカーソルなど)になる場合があるため、不調の場合は怪しいデバイスは全部外して動作確認した方が良いかもしれません。
新しいユーザーを作成して試す
Windowsはユーザーごとに様々な設定を保存していますが、不具合があったときにどの設定や一時ファイルなどが悪さをしているのか追うのは大変です。
このため、新しいユーザーを作成し、まっさらな状態でソフトを実行してみて改善するかどうか確認します。
この方法はExcel以外にもWindowsのトラブル全般で役立ちます。
コントロールパネル > ユーザーアカウント
「PC設定で新しいユーザーを追加」をクリックします。
「他のユーザー」の「+」をクリックして、新しいユーザーを追加します。
新しいユーザーを作成したら、キーボードの「CTRL + ALT + DEL」キーを押すと以下の画面になりますので、「ユーザーの切り替え」を選択します。
画面左下にユーザーのリストが表示されるので、作成したユーザーを選択します。
あとは作成したユーザーのパスワードを入力してログインし、不具合が同じように出るのか確認します。
Windowsでトラブルがあって最終的に解決しない場合はOSのクリーンインストールをしますが、その前の段階で別ユーザーで不具合が出るか確認すると良いです。
多くの設定はし直しになりますが、OSのクリーンインストールからよりは作業量が少なくてすみます。
フィードバックする & アップデートを待つ
Windowsのアップデートでは「Windowsの更新時に他のMicrosoft製品の更新プログラムを受け取る」がONだと、Officeなども更新されるので、しばらくすると改善してたりします(逆もあります)
また、エクセルやワードの中からフィードバックを直接送る事ができますので、不具合があるようならここから問題点を伝えるのも良いと思います。
これらはExcelなどソフトウェア自体の問題点などを報告するものなので、予め一般的な問題点は確認しておきましょう。
フィードバックは、Excelなどの設定などが行える「ファイル」メニュー左下から行えます。
ここから不具合の連絡などができます。
「問題点、改善点の報告」のフィードバックのフォームは以下のような感じです。
フォーラムよりハードルが低く手軽に報告ができるので、一通りチェックしたのに改善しないようであれば、不具合のフィードバックをして対応を待つのも良いと思います。
フォーラムなどでもそうですが、個々の環境による違いも大きく、相手方も把握しづらいので、できるだけ具体的で詳細な内容の方が良いと思います。
「気に入った機能の報告」というのもあるので、不具合が改善されたらお礼のメッセージを送るのも良いと思います。
Comment